{
  "bundles": [
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-platform-audit-core",
      "artifactVersion": "10.10-HF33",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.ecm.platform.audit",
          "org.nuxeo.ecm.platform.audit.api",
          "org.nuxeo.ecm.platform.audit.web"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit",
        "id": "grp:org.nuxeo.ecm.platform.audit",
        "name": "org.nuxeo.ecm.platform.audit",
        "parentIds": [
          "grp:org.nuxeo.ecm.platform"
        ],
        "readmes": [],
        "version": "10.10"
      },
      "bundleId": "org.nuxeo.ecm.platform.audit",
      "components": [
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.persistence.PersistenceComponent--hibernate",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.persistence/Contributions/org.nuxeo.ecm.platform.audit.service.persistence--hibernate",
              "id": "org.nuxeo.ecm.platform.audit.service.persistence--hibernate",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.persistence.PersistenceComponent",
                "name": "org.nuxeo.ecm.core.persistence.PersistenceComponent",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"hibernate\" target=\"org.nuxeo.ecm.core.persistence.PersistenceComponent\">\n    <hibernateConfiguration name=\"nxaudit-logs\">\n      <datasource>nxaudit-logs</datasource>\n      <properties>\n        <property name=\"hibernate.hbm2ddl.auto\">update</property>\n      </properties>\n    </hibernateConfiguration>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.persistence",
          "name": "org.nuxeo.ecm.platform.audit.service.persistence",
          "requirements": [],
          "resolutionOrder": 290,
          "services": [],
          "startOrder": 296,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<component name=\"org.nuxeo.ecm.platform.audit.service.persistence\">\n\n  <extension target=\"org.nuxeo.ecm.core.persistence.PersistenceComponent\"\n    point=\"hibernate\">\n    <hibernateConfiguration name=\"nxaudit-logs\">\n      <datasource>nxaudit-logs</datasource>\n      <properties>\n        <property name=\"hibernate.hbm2ddl.auto\">update</property>\n      </properties>\n    </hibernateConfiguration>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/nxaudit-persistence-config.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--schema",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.core.types-contrib/Contributions/org.nuxeo.ecm.platform.audit.core.types-contrib--schema",
              "id": "org.nuxeo.ecm.platform.audit.core.types-contrib--schema",
              "registrationOrder": 12,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"schema\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n    <schema name=\"basicauditsearch\" prefix=\"bas\" src=\"schemas/basicauditsearch.xsd\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--doctype",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.core.types-contrib/Contributions/org.nuxeo.ecm.platform.audit.core.types-contrib--doctype",
              "id": "org.nuxeo.ecm.platform.audit.core.types-contrib--doctype",
              "registrationOrder": 12,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"doctype\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n\n    <facet name=\"ForceAudit\"/>\n\n    <doctype extends=\"Document\" name=\"BasicAuditSearch\">\n      <schema name=\"basicauditsearch\"/>\n      <schema name=\"dublincore\"/>\n      <schema name=\"common\"/>\n    </doctype>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.core.types-contrib",
          "name": "org.nuxeo.ecm.platform.audit.core.types-contrib",
          "requirements": [],
          "resolutionOrder": 291,
          "services": [],
          "startOrder": 291,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n\n<component name=\"org.nuxeo.ecm.platform.audit.core.types-contrib\" version=\"1.0\">\n\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\" point=\"schema\">\n    <schema name=\"basicauditsearch\" prefix=\"bas\" src=\"schemas/basicauditsearch.xsd\" />\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\" point=\"doctype\">\n\n    <facet name=\"ForceAudit\" />\n\n    <doctype name=\"BasicAuditSearch\" extends=\"Document\">\n      <schema name=\"basicauditsearch\" />\n      <schema name=\"dublincore\" />\n      <schema name=\"common\" />\n    </doctype>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/core-type-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.directory.GenericDirectory--directories",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.audit.directoryContrib/Contributions/org.nuxeo.audit.directoryContrib--directories",
              "id": "org.nuxeo.audit.directoryContrib--directories",
              "registrationOrder": 3,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.directory.GenericDirectory",
                "name": "org.nuxeo.ecm.directory.GenericDirectory",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"directories\" target=\"org.nuxeo.ecm.directory.GenericDirectory\">\n\n    <directory extends=\"template-vocabulary\" name=\"eventTypes\">\n      <dataFile>directories/event-types.csv</dataFile>\n      <types>\n        <type>system</type>\n      </types>\n    </directory>\n\n    <directory extends=\"template-vocabulary\" name=\"eventCategories\">\n      <dataFile>directories/event-categories.csv</dataFile>\n      <types>\n        <type>system</type>\n      </types>\n    </directory>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.audit.directoryContrib",
          "name": "org.nuxeo.audit.directoryContrib",
          "requirements": [],
          "resolutionOrder": 292,
          "services": [],
          "startOrder": 37,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.audit.directoryContrib\">\n\n  <extension target=\"org.nuxeo.ecm.directory.GenericDirectory\" point=\"directories\">\n\n    <directory name=\"eventTypes\" extends=\"template-vocabulary\">\n      <dataFile>directories/event-types.csv</dataFile>\n      <types>\n        <type>system</type>\n      </types>\n    </directory>\n\n    <directory name=\"eventCategories\" extends=\"template-vocabulary\">\n      <dataFile>directories/event-categories.csv</dataFile>\n      <types>\n        <type>system</type>\n      </types>\n    </directory>\n\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/directories-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.query.api.PageProviderService--providers",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.PageProviderservice.contrib/Contributions/org.nuxeo.ecm.platform.audit.PageProviderservice.contrib--providers",
              "id": "org.nuxeo.ecm.platform.audit.PageProviderservice.contrib--providers",
              "registrationOrder": 10,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.query.api.PageProviderService",
                "name": "org.nuxeo.ecm.platform.query.api.PageProviderService",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"providers\" target=\"org.nuxeo.ecm.platform.query.api.PageProviderService\">\n\n    <genericPageProvider class=\"org.nuxeo.ecm.platform.audit.api.AuditPageProvider\" name=\"DOCUMENT_HISTORY_PROVIDER_OLD\">\n      <whereClause docType=\"BasicAuditSearch\">\n        <fixedPart>\n          log.docUUID = ?\n        </fixedPart>\n        <predicate operator=\"BETWEEN\" parameter=\"log.eventDate\">\n          <field name=\"startDate\" schema=\"basicauditsearch\"/>\n          <field name=\"endDate\" schema=\"basicauditsearch\"/>\n        </predicate>\n        <predicate operator=\"IN\" parameter=\"log.category\">\n          <field name=\"eventCategories\" schema=\"basicauditsearch\"/>\n        </predicate>\n        <predicate operator=\"=\" parameter=\"log.eventId\">\n          <field name=\"eventId\" schema=\"basicauditsearch\"/>\n        </predicate>\n      </whereClause>\n      <sort ascending=\"true\" column=\"log.eventDate\"/>\n      <pageSize>10</pageSize>\n    </genericPageProvider>\n\n    <genericPageProvider class=\"org.nuxeo.ecm.platform.audit.api.AuditPageProvider\" name=\"LATEST_AUDITED_CREATED_USERS_OR_GROUPS_PROVIDER\">\n      <whereClause docType=\"BasicAuditSearch\">\n        <fixedPart>\n          log.eventId = 'user_created' OR log.eventId = 'group_created'\n        </fixedPart>\n      </whereClause>\n      <sort ascending=\"false\" column=\"log.eventDate\"/>\n      <pageSize>10</pageSize>\n    </genericPageProvider>\n\n    <genericPageProvider class=\"org.nuxeo.ecm.platform.audit.provider.LatestCreatedUsersOrGroupsPageProvider\" name=\"LATEST_CREATED_USERS_OR_GROUPS_PROVIDER\">\n    </genericPageProvider>\n\n    <genericPageProvider class=\"org.nuxeo.ecm.platform.audit.api.document.DocumentHistoryPageProvider\" name=\"DOCUMENT_HISTORY_PROVIDER\">\n      <whereClause docType=\"BasicAuditSearch\">\n        <predicate operator=\"BETWEEN\" parameter=\"log.eventDate\">\n          <field name=\"startDate\" schema=\"basicauditsearch\"/>\n          <field name=\"endDate\" schema=\"basicauditsearch\"/>\n        </predicate>\n        <predicate operator=\"=\" parameter=\"log.category\">\n          <field name=\"eventCategory\" schema=\"basicauditsearch\"/>\n        </predicate>\n        <predicate operator=\"IN\" parameter=\"log.category\">\n          <field name=\"eventCategories\" schema=\"basicauditsearch\"/>\n        </predicate>\n        <predicate operator=\"=\" parameter=\"log.eventId\">\n          <field name=\"eventId\" schema=\"basicauditsearch\"/>\n        </predicate>\n        <predicate operator=\"IN\" parameter=\"log.eventId\">\n          <field name=\"eventIds\" schema=\"basicauditsearch\"/>\n        </predicate>\n        <predicate operator=\"=\" parameter=\"log.principalName\">\n          <field name=\"principalName\" schema=\"basicauditsearch\"/>\n        </predicate>\n        <predicate operator=\"IN\" parameter=\"log.principalName\">\n          <field name=\"principalNames\" schema=\"basicauditsearch\"/>\n        </predicate>\n      </whereClause>\n      <sort ascending=\"false\" column=\"log.eventDate\"/>\n      <sort ascending=\"false\" column=\"log.id\"/>\n      <pageSize>10</pageSize>\n      <maxPageSize>1000</maxPageSize>\n    </genericPageProvider>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.PageProviderservice.contrib",
          "name": "org.nuxeo.ecm.platform.audit.PageProviderservice.contrib",
          "requirements": [],
          "resolutionOrder": 293,
          "services": [],
          "startOrder": 288,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n\n<component name=\"org.nuxeo.ecm.platform.audit.PageProviderservice.contrib\">\n\n  <extension target=\"org.nuxeo.ecm.platform.query.api.PageProviderService\"\n    point=\"providers\">\n\n    <genericPageProvider name=\"DOCUMENT_HISTORY_PROVIDER_OLD\"\n      class=\"org.nuxeo.ecm.platform.audit.api.AuditPageProvider\">\n      <whereClause docType=\"BasicAuditSearch\">\n        <fixedPart>\n          log.docUUID = ?\n        </fixedPart>\n        <predicate parameter=\"log.eventDate\" operator=\"BETWEEN\">\n          <field schema=\"basicauditsearch\" name=\"startDate\" />\n          <field schema=\"basicauditsearch\" name=\"endDate\" />\n        </predicate>\n        <predicate parameter=\"log.category\" operator=\"IN\">\n          <field schema=\"basicauditsearch\" name=\"eventCategories\" />\n        </predicate>\n        <predicate parameter=\"log.eventId\" operator=\"=\">\n          <field schema=\"basicauditsearch\" name=\"eventId\" />\n        </predicate>\n      </whereClause>\n      <sort column=\"log.eventDate\" ascending=\"true\" />\n      <pageSize>10</pageSize>\n    </genericPageProvider>\n\n    <genericPageProvider name=\"LATEST_AUDITED_CREATED_USERS_OR_GROUPS_PROVIDER\"\n      class=\"org.nuxeo.ecm.platform.audit.api.AuditPageProvider\">\n      <whereClause docType=\"BasicAuditSearch\">\n        <fixedPart>\n          log.eventId = 'user_created' OR log.eventId = 'group_created'\n        </fixedPart>\n      </whereClause>\n      <sort column=\"log.eventDate\" ascending=\"false\" />\n      <pageSize>10</pageSize>\n    </genericPageProvider>\n\n    <genericPageProvider name=\"LATEST_CREATED_USERS_OR_GROUPS_PROVIDER\"\n      class=\"org.nuxeo.ecm.platform.audit.provider.LatestCreatedUsersOrGroupsPageProvider\">\n    </genericPageProvider>\n\n    <genericPageProvider name=\"DOCUMENT_HISTORY_PROVIDER\"\n      class=\"org.nuxeo.ecm.platform.audit.api.document.DocumentHistoryPageProvider\">\n      <whereClause docType=\"BasicAuditSearch\">\n        <predicate parameter=\"log.eventDate\" operator=\"BETWEEN\">\n          <field schema=\"basicauditsearch\" name=\"startDate\" />\n          <field schema=\"basicauditsearch\" name=\"endDate\" />\n        </predicate>\n        <predicate parameter=\"log.category\" operator=\"=\">\n          <field schema=\"basicauditsearch\" name=\"eventCategory\" />\n        </predicate>\n        <predicate parameter=\"log.category\" operator=\"IN\">\n          <field schema=\"basicauditsearch\" name=\"eventCategories\" />\n        </predicate>\n        <predicate parameter=\"log.eventId\" operator=\"=\">\n          <field schema=\"basicauditsearch\" name=\"eventId\" />\n        </predicate>\n        <predicate parameter=\"log.eventId\" operator=\"IN\">\n          <field schema=\"basicauditsearch\" name=\"eventIds\" />\n        </predicate>\n        <predicate parameter=\"log.principalName\" operator=\"=\">\n          <field schema=\"basicauditsearch\" name=\"principalName\" />\n        </predicate>\n        <predicate parameter=\"log.principalName\" operator=\"IN\">\n          <field schema=\"basicauditsearch\" name=\"principalNames\" />\n        </predicate>\n      </whereClause>\n      <sort column=\"log.eventDate\" ascending=\"false\" />\n      <sort column=\"log.id\" ascending=\"false\" />\n      <pageSize>10</pageSize>\n      <maxPageSize>1000</maxPageSize>\n    </genericPageProvider>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/pageprovider-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentation": "\n    Core IO registered marshallers set.\n  \n",
          "documentationHtml": "<p>\nCore IO registered marshallers set.\n</p><p></p>",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.io.MarshallerRegistry--marshallers",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.io.marshallers/Contributions/org.nuxeo.ecm.platform.audit.io.marshallers--marshallers",
              "id": "org.nuxeo.ecm.platform.audit.io.marshallers--marshallers",
              "registrationOrder": 5,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.io.MarshallerRegistry",
                "name": "org.nuxeo.ecm.core.io.MarshallerRegistry",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"marshallers\" target=\"org.nuxeo.ecm.core.io.MarshallerRegistry\">\n    <!-- preview document enricher -->\n    <register class=\"org.nuxeo.ecm.platform.audit.io.LogEntryJsonWriter\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.platform.audit.io.LogEntryListJsonWriter\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.platform.audit.io.LogEntryCSVWriter\" enable=\"true\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.io.marshallers",
          "name": "org.nuxeo.ecm.platform.audit.io.marshallers",
          "requirements": [],
          "resolutionOrder": 295,
          "services": [],
          "startOrder": 293,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.audit.io.marshallers\" version=\"1.0.0\">\n  <documentation>\n    Core IO registered marshallers set.\n  </documentation>\n  <extension target=\"org.nuxeo.ecm.core.io.MarshallerRegistry\" point=\"marshallers\">\n    <!-- preview document enricher -->\n    <register class=\"org.nuxeo.ecm.platform.audit.io.LogEntryJsonWriter\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.platform.audit.io.LogEntryListJsonWriter\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.platform.audit.io.LogEntryCSVWriter\" enable=\"true\" />\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/marshallers-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentation": "Contribute the search event to the Audit configuration :\n    this is\n    only safe to do so when the ES backend if used for Audit\n  \n",
          "documentationHtml": "<p>\nContribute the search event to the Audit configuration :\nthis is\nonly safe to do so when the ES backend if used for Audit\n</p><p></p>",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--event",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.user.contrib/Contributions/org.nuxeo.ecm.platform.audit.user.contrib--event",
              "id": "org.nuxeo.ecm.platform.audit.user.contrib--event",
              "registrationOrder": 4,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
                "name": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"event\" target=\"org.nuxeo.ecm.platform.audit.service.NXAuditEventsService\">\n    <event name=\"user_created\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.id}\" key=\"id\"/>\n      </extendedInfos>\n    </event>\n    <event name=\"user_deleted\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.id}\" key=\"id\"/>\n      </extendedInfos>\n    </event>\n    <event name=\"user_modified\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.id}\" key=\"id\"/>\n      </extendedInfos>\n    </event>\n    <event name=\"group_created\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.id}\" key=\"id\"/>\n      </extendedInfos>\n    </event>\n    <event name=\"group_deleted\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.id}\" key=\"id\"/>\n      </extendedInfos>\n    </event>\n    <event name=\"group_modified\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.id}\" key=\"id\"/>\n      </extendedInfos>\n    </event>\n    <event name=\"retentionActiveChanged\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.retentionActive}\" key=\"retentionActive\"/>\n      </extendedInfos>\n    </event>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.user.contrib",
          "name": "org.nuxeo.ecm.platform.audit.user.contrib",
          "requirements": [],
          "resolutionOrder": 296,
          "services": [],
          "startOrder": 297,
          "version": "10.10-HF33",
          "xmlFileContent": "<component name=\"org.nuxeo.ecm.platform.audit.user.contrib\" version=\"1.0\">\n\n  <documentation>Contribute the search event to the Audit configuration :\n    this is\n    only safe to do so when the ES backend if used for Audit\n  </documentation>\n\n  <extension target=\"org.nuxeo.ecm.platform.audit.service.NXAuditEventsService\"\n    point=\"event\">\n    <event name=\"user_created\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.id}\" key=\"id\" />\n      </extendedInfos>\n    </event>\n    <event name=\"user_deleted\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.id}\" key=\"id\" />\n      </extendedInfos>\n    </event>\n    <event name=\"user_modified\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.id}\" key=\"id\" />\n      </extendedInfos>\n    </event>\n    <event name=\"group_created\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.id}\" key=\"id\" />\n      </extendedInfos>\n    </event>\n    <event name=\"group_deleted\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.id}\" key=\"id\" />\n      </extendedInfos>\n    </event>\n    <event name=\"group_modified\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.id}\" key=\"id\" />\n      </extendedInfos>\n    </event>\n    <event name=\"retentionActiveChanged\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.retentionActive}\" key=\"retentionActive\" />\n      </extendedInfos>\n    </event>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/user-audit-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
          "declaredStartOrder": 51,
          "documentation": "\n    Service that deals with audit.\n    <p/>\n\n    Most of the work is done at EJB layer though.\n\n    This supports JMS events based\n    notifications on a dedicated topic.\n\n    @version 1.0\n    @author Julien Anguenot\n  \n",
          "documentationHtml": "<p>\nService that deals with audit.\n</p><p>\nMost of the work is done at EJB layer though.\n</p><p>\nThis supports JMS events based\nnotifications on a dedicated topic.\n</p><p>\n&#64;version 1.0\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
              "descriptors": [
                "org.nuxeo.ecm.platform.audit.service.extension.EventDescriptor"
              ],
              "documentation": "\n      This service registers auditable events.\n      <p/>\n\n      Registered events are dummy strings for now.\n      <p/>\n\n      This service is used to filter auditable events from the JMS topic based\n      on their names. The following XML snipset give figures out how the default\n      event types are selected for auditing.\n\n      <programlisting>\n    <extension point=\"event\" target=\"org.nuxeo.ecm.platform.audit.service.NXAuditEventsService\">\n        <event name=\"documentCreated\"/>\n        <event name=\"documentCreatedByCopy\"/>\n        <event name=\"documentDuplicated\"/>\n        <event name=\"documentMoved\"/>\n        <event name=\"documentRemoved\"/>\n        <event name=\"documentModified\"/>\n        <event name=\"documentLocked\"/>\n        <event name=\"documentUnlocked\"/>\n        <event name=\"documentSecurityUpdated\"/>\n        <event name=\"lifecycle_transition_event\"/>\n        <event name=\"documentTrashed\"/>\n        <event name=\"documentUntrashed\"/>\n    </extension>\n</programlisting>\n",
              "documentationHtml": "<p>\nThis service registers auditable events.\n</p><p>\nRegistered events are dummy strings for now.\n</p><p>\nThis service is used to filter auditable events from the JMS topic based\non their names. The following XML snipset give figures out how the default\nevent types are selected for auditing.\n</p><p>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n</p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService/ExtensionPoints/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--event",
              "id": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--event",
              "label": "event (org.nuxeo.ecm.platform.audit.service.NXAuditEventsService)",
              "name": "event",
              "version": "10.10-HF33"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
              "descriptors": [
                "org.nuxeo.ecm.platform.audit.service.extension.ExtendedInfoDescriptor"
              ],
              "documentation": "\n      This service registered extended info mappings.\n\n      <p/>\n\n      This service is used to evaluate EL expression using document as context\n      regist:ering results into a map indexed by names.\n    \n",
              "documentationHtml": "<p>\nThis service registered extended info mappings.\n</p><p>\nThis service is used to evaluate EL expression using document as context\nregist:ering results into a map indexed by names.\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService/ExtensionPoints/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--extendedInfo",
              "id": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--extendedInfo",
              "label": "extendedInfo (org.nuxeo.ecm.platform.audit.service.NXAuditEventsService)",
              "name": "extendedInfo",
              "version": "10.10-HF33"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
              "descriptors": [
                "org.nuxeo.ecm.platform.audit.service.extension.AdapterDescriptor"
              ],
              "documentation": "\n      register the adapter that will be injected in EL context\n    \n",
              "documentationHtml": "<p>\nregister the adapter that will be injected in EL context\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService/ExtensionPoints/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--adapter",
              "id": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--adapter",
              "label": "adapter (org.nuxeo.ecm.platform.audit.service.NXAuditEventsService)",
              "name": "adapter",
              "version": "10.10-HF33"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
              "descriptors": [
                "org.nuxeo.ecm.platform.audit.service.extension.AuditBackendDescriptor"
              ],
              "documentation": "\n      Allows to register a backend implementation for the Audit Service\n    \n",
              "documentationHtml": "<p>\nAllows to register a backend implementation for the Audit Service\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService/ExtensionPoints/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--backend",
              "id": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--backend",
              "label": "backend (org.nuxeo.ecm.platform.audit.service.NXAuditEventsService)",
              "name": "backend",
              "version": "10.10-HF33"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
              "descriptors": [
                "org.nuxeo.ecm.platform.audit.service.extension.AuditStorageDescriptor"
              ],
              "documentation": "\n      Allows to register a storage implementation for the Audit Service\n    \n",
              "documentationHtml": "<p>\nAllows to register a storage implementation for the Audit Service\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService/ExtensionPoints/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--storage",
              "id": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--storage",
              "label": "storage (org.nuxeo.ecm.platform.audit.service.NXAuditEventsService)",
              "name": "storage",
              "version": "10.10-HF33"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
              "descriptors": [
                "org.nuxeo.ecm.platform.audit.service.extension.AuditBulkerDescriptor"
              ],
              "documentation": "\n       CAUTION: Deprecated since 10.10-HF33, audit bulker is now handled with nuxeo-stream, no replacement\n      Allows to configure bulk processing\n    \n",
              "documentationHtml": "<p>\nCAUTION: Deprecated since 10.10-HF33, audit bulker is now handled with nuxeo-stream, no replacement\nAllows to configure bulk processing\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService/ExtensionPoints/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--bulk",
              "id": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--bulk",
              "label": "bulk (org.nuxeo.ecm.platform.audit.service.NXAuditEventsService)",
              "name": "bulk",
              "version": "10.10-HF33"
            }
          ],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentation": "\n      Those default auditable events match Nuxeo core base events.\n      <p/>\n\n      If you are sending new Nuxeo core events and want them audited, this is\n      the place to declare them NXAudit side.\n    \n",
              "documentationHtml": "<p>\nThose default auditable events match Nuxeo core base events.\n</p><p>\nIf you are sending new Nuxeo core events and want them audited, this is\nthe place to declare them NXAudit side.\n</p><p></p>",
              "extensionPoint": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--event",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService/Contributions/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--event",
              "id": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--event",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
                "name": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"event\" target=\"org.nuxeo.ecm.platform.audit.service.NXAuditEventsService\">\n    <documentation>\n      Those default auditable events match Nuxeo core base events.\n      <p/>\n      If you are sending new Nuxeo core events and want them audited, this is\n      the place to declare them NXAudit side.\n    </documentation>\n\n    <event name=\"documentCreated\"/>\n    <event name=\"documentCreatedByCopy\"/>\n    <event name=\"documentDuplicated\"/>\n    <event name=\"documentMoved\"/>\n    <event name=\"documentRemoved\"/>\n    <event name=\"documentModified\"/>\n    <event name=\"documentLocked\"/>\n    <event name=\"documentUnlocked\"/>\n    <event name=\"documentSecurityUpdated\"/>\n    <event name=\"retentionActiveChanged\"/>\n    <event name=\"lifecycle_transition_event\"/>\n    <event name=\"loginSuccess\"/>\n    <event name=\"loginFailed\"/>\n    <event name=\"logout\"/>\n    <event name=\"documentCheckedIn\"/>\n    <event name=\"versionRemoved\"/>\n    <event name=\"documentProxyPublished\"/>\n    <event name=\"sectionContentPublished\"/>\n    <event name=\"documentRestored\"/>\n    <event name=\"download\"/>\n    <event name=\"documentTrashed\"/>\n    <event name=\"documentUntrashed\"/>\n    <event name=\"addedToCollection\"/>\n    <event name=\"removedFromCollection\"/>\n    <event name=\"afterMakeRecord\"/>\n    <event name=\"afterSetRetention\"/>\n    <event name=\"afterExtendRetention\"/>\n    <event name=\"retentionExpired\"/>\n    <event name=\"afterSetLegalHold\"/>\n    <event name=\"afterRemoveLegalHold\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--backend",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService/Contributions/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--backend",
              "id": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--backend",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
                "name": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"backend\" target=\"org.nuxeo.ecm.platform.audit.service.NXAuditEventsService\">\n\n    <backend class=\"org.nuxeo.ecm.platform.audit.service.DefaultAuditBackend\">\n       <require>org.nuxeo.ecm.core.persistence.PersistenceComponent</require>\n    </backend>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.event.EventServiceComponent--listener",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService/Contributions/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--listener",
              "id": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--listener",
              "registrationOrder": 45,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.event.EventServiceComponent",
                "name": "org.nuxeo.ecm.core.event.EventServiceComponent",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"listener\" target=\"org.nuxeo.ecm.core.event.EventServiceComponent\">\n    <listener async=\"false\" class=\"org.nuxeo.ecm.platform.audit.listener.StreamAuditEventListener\" name=\"auditLoggerListener\" postCommit=\"false\" priority=\"500\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.runtime.stream.service--logConfig",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService/Contributions/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--logConfig",
              "id": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--logConfig",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.stream.service",
                "name": "org.nuxeo.runtime.stream.service",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"logConfig\" target=\"org.nuxeo.runtime.stream.service\">\n    <logConfig name=\"audit\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.runtime.stream.service--streamProcessor",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService/Contributions/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--streamProcessor",
              "id": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--streamProcessor",
              "registrationOrder": 3,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.stream.service",
                "name": "org.nuxeo.runtime.stream.service",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"streamProcessor\" target=\"org.nuxeo.runtime.stream.service\">\n    <streamProcessor class=\"org.nuxeo.ecm.platform.audit.impl.StreamAuditWriter\" defaultCodec=\"legacy\" defaultConcurrency=\"1\" defaultPartitions=\"1\" enabled=\"true\" logConfig=\"audit\" name=\"auditLogWriter\">\n      <policy batchCapacity=\"25\" batchThreshold=\"500ms\" continueOnFailure=\"false\" delay=\"1s\" maxDelay=\"60s\" maxRetries=\"20\" name=\"AuditLogWriter\"/>\n    </streamProcessor>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
          "name": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
          "requirements": [
            "org.nuxeo.ecm.platform.audit.service.persistence",
            "org.nuxeo.runtime.metrics.MetricsService"
          ],
          "resolutionOrder": 835,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService/Services/org.nuxeo.ecm.platform.audit.service.AuditBackend",
              "id": "org.nuxeo.ecm.platform.audit.service.AuditBackend",
              "overriden": false,
              "version": "10.10-HF33"
            },
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService/Services/org.nuxeo.ecm.platform.audit.api.AuditReader",
              "id": "org.nuxeo.ecm.platform.audit.api.AuditReader",
              "overriden": false,
              "version": "10.10-HF33"
            },
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService/Services/org.nuxeo.ecm.platform.audit.api.AuditLogger",
              "id": "org.nuxeo.ecm.platform.audit.api.AuditLogger",
              "overriden": false,
              "version": "10.10-HF33"
            },
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService/Services/org.nuxeo.ecm.platform.audit.api.Logs",
              "id": "org.nuxeo.ecm.platform.audit.api.Logs",
              "overriden": false,
              "version": "10.10-HF33"
            },
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit.service.NXAuditEventsService/Services/org.nuxeo.ecm.platform.audit.api.DocumentHistoryReader",
              "id": "org.nuxeo.ecm.platform.audit.api.DocumentHistoryReader",
              "overriden": false,
              "version": "10.10-HF33"
            }
          ],
          "startOrder": 808,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<component name=\"org.nuxeo.ecm.platform.audit.service.NXAuditEventsService\">\n\n  <require>org.nuxeo.runtime.metrics.MetricsService</require>\n\n  <documentation>\n    Service that deals with audit.\n    <p />\n    Most of the work is done at EJB layer though.\n\n    This supports JMS events based\n    notifications on a dedicated topic.\n\n    @version 1.0\n    @author Julien Anguenot\n  </documentation>\n\n  <!-- needed so that activation has access to persistence -->\n  <require>org.nuxeo.ecm.platform.audit.service.persistence</require>\n\n  <implementation class=\"org.nuxeo.ecm.platform.audit.service.NXAuditEventsService\" />\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.platform.audit.service.AuditBackend\"/>\n    <provide interface=\"org.nuxeo.ecm.platform.audit.api.AuditReader\" />\n    <provide interface=\"org.nuxeo.ecm.platform.audit.api.AuditLogger\" />\n    <provide interface=\"org.nuxeo.ecm.platform.audit.api.Logs\" />\n    <provide interface=\"org.nuxeo.ecm.platform.audit.api.DocumentHistoryReader\" />\n  </service>\n\n  <extension-point name=\"event\">\n    <documentation>\n      This service registers auditable events.\n      <p />\n      Registered events are dummy strings for now.\n      <p />\n      This service is used to filter auditable events from the JMS topic based\n      on their names. The following XML snipset give figures out how the default\n      event types are selected for auditing.\n\n      <programlisting>\n        <extension target=\"org.nuxeo.ecm.platform.audit.service.NXAuditEventsService\"\n          point=\"event\">\n          <event name=\"documentCreated\" />\n          <event name=\"documentCreatedByCopy\" />\n          <event name=\"documentDuplicated\" />\n          <event name=\"documentMoved\" />\n          <event name=\"documentRemoved\" />\n          <event name=\"documentModified\" />\n          <event name=\"documentLocked\" />\n          <event name=\"documentUnlocked\" />\n          <event name=\"documentSecurityUpdated\" />\n          <event name=\"lifecycle_transition_event\" />\n          <event name=\"documentTrashed\" />\n          <event name=\"documentUntrashed\" />\n        </extension>\n      </programlisting>\n    </documentation>\n\n    <object class=\"org.nuxeo.ecm.platform.audit.service.extension.EventDescriptor\" />\n\n  </extension-point>\n\n  <extension-point name=\"extendedInfo\">\n\n    <documentation>\n      This service registered extended info mappings.\n\n      <p />\n      This service is used to evaluate EL expression using document as context\n      regist:ering results into a map indexed by names.\n    </documentation>\n\n    <object\n      class=\"org.nuxeo.ecm.platform.audit.service.extension.ExtendedInfoDescriptor\" />\n  </extension-point>\n\n  <extension-point name=\"adapter\">\n\n    <documentation>\n      register the adapter that will be injected in EL context\n    </documentation>\n\n    <object class=\"org.nuxeo.ecm.platform.audit.service.extension.AdapterDescriptor\" />\n  </extension-point>\n\n  <extension-point name=\"backend\">\n\n    <documentation>\n      Allows to register a backend implementation for the Audit Service\n    </documentation>\n\n    <object class=\"org.nuxeo.ecm.platform.audit.service.extension.AuditBackendDescriptor\" />\n  </extension-point>\n\n  <extension-point name=\"storage\">\n\n    <documentation>\n      Allows to register a storage implementation for the Audit Service\n    </documentation>\n\n    <object class=\"org.nuxeo.ecm.platform.audit.service.extension.AuditStorageDescriptor\" />\n  </extension-point>\n\n  <extension-point name=\"bulk\">\n     <documentation>\n       CAUTION: Deprecated since 10.10-HF33, audit bulker is now handled with nuxeo-stream, no replacement\n      Allows to configure bulk processing\n    </documentation>\n\n    <object class=\"org.nuxeo.ecm.platform.audit.service.extension.AuditBulkerDescriptor\"/>\n  </extension-point>\n\n  <extension target=\"org.nuxeo.ecm.platform.audit.service.NXAuditEventsService\"\n    point=\"event\">\n    <documentation>\n      Those default auditable events match Nuxeo core base events.\n      <p />\n      If you are sending new Nuxeo core events and want them audited, this is\n      the place to declare them NXAudit side.\n    </documentation>\n\n    <event name=\"documentCreated\" />\n    <event name=\"documentCreatedByCopy\" />\n    <event name=\"documentDuplicated\" />\n    <event name=\"documentMoved\" />\n    <event name=\"documentRemoved\" />\n    <event name=\"documentModified\" />\n    <event name=\"documentLocked\" />\n    <event name=\"documentUnlocked\" />\n    <event name=\"documentSecurityUpdated\" />\n    <event name=\"retentionActiveChanged\" />\n    <event name=\"lifecycle_transition_event\" />\n    <event name=\"loginSuccess\" />\n    <event name=\"loginFailed\" />\n    <event name=\"logout\" />\n    <event name=\"documentCheckedIn\" />\n    <event name=\"versionRemoved\" />\n    <event name=\"documentProxyPublished\" />\n    <event name=\"sectionContentPublished\" />\n    <event name=\"documentRestored\" />\n    <event name=\"download\" />\n    <event name=\"documentTrashed\" />\n    <event name=\"documentUntrashed\" />\n    <event name=\"addedToCollection\" />\n    <event name=\"removedFromCollection\" />\n    <event name=\"afterMakeRecord\" />\n    <event name=\"afterSetRetention\" />\n    <event name=\"afterExtendRetention\" />\n    <event name=\"retentionExpired\" />\n    <event name=\"afterSetLegalHold\" />\n    <event name=\"afterRemoveLegalHold\" />\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.audit.service.NXAuditEventsService\"\n    point=\"backend\">\n\n    <backend class=\"org.nuxeo.ecm.platform.audit.service.DefaultAuditBackend\">\n       <require>org.nuxeo.ecm.core.persistence.PersistenceComponent</require>\n    </backend>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.core.event.EventServiceComponent\" point=\"listener\">\n    <listener name=\"auditLoggerListener\" async=\"false\" postCommit=\"false\" priority=\"500\"\n              class=\"org.nuxeo.ecm.platform.audit.listener.StreamAuditEventListener\" />\n  </extension>\n\n  <extension target=\"org.nuxeo.runtime.stream.service\" point=\"logConfig\">\n    <logConfig name=\"${nuxeo.stream.audit.log.config:=audit}\" />\n  </extension>\n\n  <extension target=\"org.nuxeo.runtime.stream.service\" point=\"streamProcessor\">\n    <streamProcessor name=\"auditLogWriter\" logConfig=\"${nuxeo.stream.audit.log.config:=audit}\"\n                     defaultConcurrency=\"1\" defaultPartitions=\"1\" defaultCodec=\"${nuxeo.stream.audit.log.codec:=legacy}\"\n                     class=\"org.nuxeo.ecm.platform.audit.impl.StreamAuditWriter\"\n                     enabled=\"${nuxeo.stream.audit.enabled:=true}\">\n      <policy name=\"AuditLogWriter\" batchCapacity=\"${nuxeo.stream.audit.batch.size:=10}\"\n              batchThreshold=\"${nuxeo.stream.audit.batch.threshold.ms:=50}ms\"\n              maxRetries=\"20\" delay=\"1s\" maxDelay=\"60s\" continueOnFailure=\"false\" />\n    </streamProcessor>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/nxaudit-service.xml",
          "xmlPureComponent": false
        }
      ],
      "fileName": "nuxeo-platform-audit-core-10.10-HF33.jar",
      "groupId": "org.nuxeo.ecm.platform",
      "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.audit/org.nuxeo.ecm.platform.audit",
      "id": "org.nuxeo.ecm.platform.audit",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: 1.6.0_20 (Sun Microsystems Inc.)\r\nBuilt-By: jenkins\r\nBuild-Jdk: 1.8.0_265\r\nBundle-ManifestVersion: 2\r\nBundle-Version: 0.0.0.SNAPSHOT\r\nBundle-SymbolicName: org.nuxeo.ecm.platform.audit\r\nBundle-Category: web,stateful\r\nBundle-ActivationPolicy: lazy\r\nBundle-RequiredExecutionEnvironment: JavaSE-1.6\r\nBundle-Vendor: Nuxeo\r\nImport-Package: de.odysseus.el;version=\"2.1.2\",javax.annotation;versio\r\n n=\"1.0\",javax.el,javax.management,javax.persistence,org.apache.common\r\n s.lang.builder,org.apache.commons.logging,org.nuxeo.common.xmap.annot\r\n ation,org.nuxeo.ecm.core;api=split,org.nuxeo.ecm.core.api;api=split,o\r\n rg.nuxeo.ecm.core.api.event,org.nuxeo.ecm.core.api.repository,org.nux\r\n eo.ecm.core.api.security,org.nuxeo.ecm.core.event,org.nuxeo.ecm.core.\r\n event.impl,org.nuxeo.ecm.core.persistence,org.nuxeo.ecm.directory;api\r\n =split,org.nuxeo.ecm.platform.audit.api,org.nuxeo.ecm.platform.audit.\r\n api.query,org.nuxeo.ecm.platform.el,org.nuxeo.runtime.api,org.nuxeo.r\r\n untime.management,org.nuxeo.runtime.model,org.osgi.framework;version=\r\n \"1.5.0\"\r\nNuxeo-Component: OSGI-INF/nxaudit-service.xml,OSGI-INF/nxaudit-persist\r\n ence-config.xml,OSGI-INF/core-type-contrib.xml,OSGI-INF/directories-c\r\n ontrib.xml,OSGI-INF/pageprovider-contrib.xml,OSGI-INF/marshallers-con\r\n trib.xml, OSGI-INF/user-audit-contrib.xml\r\nExport-Package: org.nuxeo.ecm.platform.audit.listener,org.nuxeo.ecm.pl\r\n atform.audit.service,org.nuxeo.ecm.platform.audit.service.extension,o\r\n rg.nuxeo.ecm.platform.audit.service.management\r\nBundle-Name: NXAudit Core\r\nBundle-ClassPath: .\r\nBundle-Localization: plugin\r\nPrivate-Package: .\r\n\r\n",
      "maxResolutionOrder": 835,
      "minResolutionOrder": 290,
      "packages": [
        "nuxeo-10.10-HF01",
        "nuxeo-10.10-HF02",
        "nuxeo-10.10-HF03",
        "nuxeo-10.10-HF04",
        "nuxeo-10.10-HF05",
        "nuxeo-10.10-HF06",
        "nuxeo-10.10-HF07",
        "nuxeo-10.10-HF08",
        "nuxeo-10.10-HF09",
        "nuxeo-10.10-HF10",
        "nuxeo-10.10-HF11",
        "nuxeo-10.10-HF12",
        "nuxeo-10.10-HF13",
        "nuxeo-10.10-HF14",
        "nuxeo-10.10-HF15",
        "nuxeo-10.10-HF16",
        "nuxeo-10.10-HF17",
        "nuxeo-10.10-HF18",
        "nuxeo-10.10-HF19",
        "nuxeo-10.10-HF20",
        "nuxeo-10.10-HF21",
        "nuxeo-10.10-HF22",
        "nuxeo-10.10-HF23",
        "nuxeo-10.10-HF24",
        "nuxeo-10.10-HF25",
        "nuxeo-10.10-HF26",
        "nuxeo-10.10-HF27",
        "nuxeo-10.10-HF28",
        "nuxeo-10.10-HF29",
        "nuxeo-10.10-HF30",
        "nuxeo-10.10-HF31",
        "nuxeo-10.10-HF32",
        "nuxeo-10.10-HF33"
      ],
      "requirements": [],
      "version": "10.10-HF33"
    },
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-web-ui",
      "artifactVersion": "10.10-HF33",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.web.ui",
          "org.nuxeo.web.ui.drive",
          "org.nuxeo.web.ui.easyshare"
        ],
        "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web",
        "id": "grp:org.nuxeo.web",
        "name": "org.nuxeo.web",
        "parentIds": [
          "grp:org.nuxeo.web.ui"
        ],
        "readmes": [
          {
            "blobProviderId": "default",
            "content": "# Nuxeo Drive Server\n\nAddon needed for [Nuxeo Drive](https://github.com/nuxeo/nuxeo-drive) to work against a Nuxeo Platform instance.\n\n# Building\n\n    mvn clean install\n\n## Deploying\n\nInstall [the Nuxeo Drive Marketplace Package](https://connect.nuxeo.com/nuxeo/site/marketplace/package/nuxeo-drive).\nOr manually copy the built artifacts into `$NUXEO_HOME/templates/custom/bundles/` and activate the \"custom\" template.\n\nYou should then have the 'Nuxeo Drive' tab in your Home allowing you to download the Nuxeo Drive client for your favorite OS :-)\n\n## QA results\n\n| Nuxeo QA Job | Status |\n|-----|--------|\n| Build Status | [![Build Status](https://qa.nuxeo.org/jenkins/job/master/job/addons_nuxeo-drive-server-master/badge/icon)](https://qa.nuxeo.org/jenkins/job/master/job/addons_nuxeo-drive-server-master/) |\n| Build Multi-DB | [![Build Multi-DB](https://qa.nuxeo.org/jenkins/job/master/job/addons_nuxeo-drive-server-master-multidb/badge/icon)](https://qa.nuxeo.org/jenkins/job/master/job/addons_nuxeo-drive-server-master-multidb) |\n\n# About Nuxeo\n\nNuxeo dramatically improves how content-based applications are built, managed and deployed, making customers more agile, innovative and successful. Nuxeo provides a next generation, enterprise ready platform for building traditional and cutting-edge content oriented applications. Combining a powerful application development environment with SaaS-based tools and a modular architecture, the Nuxeo Platform and Products provide clear business value to some of the most recognizable brands including Verizon, Electronic Arts, Sharp, FICO, the U.S. Navy, and Boeing. Nuxeo is headquartered in New York and Paris. More information is available at www.nuxeo.com.\n",
            "digest": "dd6f47d8da7a0fa3605f1935a942caf4",
            "encoding": "UTF-8",
            "length": 1712,
            "mimeType": "text/plain",
            "name": "README.md"
          },
          {
            "blobProviderId": "default",
            "content": "\n#EasyShare\n\n## About EasyShare\nThe EasyShare package is an addon for the Nuxeo platform to enable sharing files from the repository with external users not requiring a login. You can specify a set of files to be accessed by a specific unique URL which allows anonymous download of either files within the share or proxies from anywhere else in your repository through a special folder listing page. You can also set an expiration date for sharing availability and track all downloads and get notifications.\n\nThis project is an on-going project, supported by Nuxeo\n\n## Deploying\nEasyShare is available as a package add-on [from the Nuxeo Marketplace] https://connect.nuxeo.com/nuxeo/site/marketplace/package/easyshare\n\n## Resources\n### Documentation\nThe documentation for EasyShare is available in our Documentation Center: http://doc.nuxeo.com/x/rooZAQ\n\n### Following Project QA Status\n\n[![Build Status](https://qa.nuxeo.org/jenkins/buildStatus/icon?job=addons_nuxeo-easyshare-master)](https://qa.nuxeo.org/jenkins/job/addons_nuxeo-easyshare-master/)\n\n### Reporting Issues\nYou can follow the developments in the Nuxeo Platform project of our JIRA bug tracker, which includes an EasyShare component:\nhttps://jira.nuxeo.com/browse/NXP/component/14003\n\nYou can report issues on: http://answers.nuxeo.com\n\n## About Nuxeo\nNuxeo dramatically improves how content-based applications are built, managed and deployed, making customers more agile, innovative and successful. Nuxeo provides a next generation, enterprise ready platform for building traditional and cutting-edge content oriented applications. Combining a powerful application development environment with SaaS-based tools and a modular architecture, the Nuxeo Platform and Products provide clear business value to some of the most recognizable brands including Verizon, Electronic Arts, Netflix, Sharp, FICO, the U.S. Navy, and Boeing. Nuxeo is headquartered in New York and Paris. More information is available at www.nuxeo.com.\n",
            "digest": "8348c059f1deecffbe4b8bc0ce482018",
            "encoding": "UTF-8",
            "length": 1986,
            "mimeType": "text/plain",
            "name": "README.md"
          }
        ],
        "version": "10.10"
      },
      "bundleId": "org.nuxeo.web.ui",
      "components": [
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService--startURL",
              "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web/org.nuxeo.web.ui/org.nuxeo.web.ui.authentication.contrib/Contributions/org.nuxeo.web.ui.authentication.contrib--startURL",
              "id": "org.nuxeo.web.ui.authentication.contrib--startURL",
              "registrationOrder": 13,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService",
                "name": "org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"startURL\" target=\"org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService\">\n    <startURLPattern>\n      <patterns>\n        <pattern>ui</pattern>\n        <pattern>repo</pattern>\n      </patterns>\n    </startURLPattern>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web/org.nuxeo.web.ui/org.nuxeo.web.ui.authentication.contrib",
          "name": "org.nuxeo.web.ui.authentication.contrib",
          "requirements": [],
          "resolutionOrder": 951,
          "services": [],
          "startOrder": 797,
          "version": "10.10-HF33",
          "xmlFileContent": "<component name=\"org.nuxeo.web.ui.authentication.contrib\">\n  <extension point=\"startURL\" target=\"org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService\">\n    <startURLPattern>\n      <patterns>\n        <pattern>ui</pattern>\n        <pattern>repo</pattern>\n      </patterns>\n    </startURLPattern>\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/auth-config.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.actions.ActionService--actions",
              "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web/org.nuxeo.web.ui/org.nuxeo.web.ui.actions/Contributions/org.nuxeo.web.ui.actions--actions",
              "id": "org.nuxeo.web.ui.actions--actions",
              "registrationOrder": 73,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.actions.ActionService",
                "name": "org.nuxeo.ecm.platform.actions.ActionService",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"actions\" target=\"org.nuxeo.ecm.platform.actions.ActionService\">\n\n    <action id=\"webui\" label=\"WEBUI\" link=\"ui\" order=\"90\" type=\"bare_link\">\n      <category>MAIN_TABS</category>\n    </action>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web/org.nuxeo.web.ui/org.nuxeo.web.ui.actions",
          "name": "org.nuxeo.web.ui.actions",
          "requirements": [],
          "resolutionOrder": 952,
          "services": [],
          "startOrder": 796,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<component name=\"org.nuxeo.web.ui.actions\">\n\n  <extension target=\"org.nuxeo.ecm.platform.actions.ActionService\"\n    point=\"actions\">\n\n    <action id=\"webui\" link=\"ui\" label=\"WEBUI\" order=\"90\" type=\"bare_link\">\n      <category>MAIN_TABS</category>\n    </action>\n\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/actions-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService--loginScreen",
              "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web/org.nuxeo.web.ui/org.nuxeo.login.startup.page.web.contrib/Contributions/org.nuxeo.login.startup.page.web.contrib--loginScreen",
              "id": "org.nuxeo.login.startup.page.web.contrib--loginScreen",
              "registrationOrder": 3,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService",
                "name": "org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"loginScreen\" target=\"org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService\">\n    <loginScreenConfig>\n      <startupPages>\n        <startupPage id=\"web\" priority=\"100\">\n          <path>ui/</path>\n        </startupPage>\n      </startupPages>\n    </loginScreenConfig>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web/org.nuxeo.web.ui/org.nuxeo.login.startup.page.web.contrib",
          "name": "org.nuxeo.login.startup.page.web.contrib",
          "requirements": [],
          "resolutionOrder": 953,
          "services": [],
          "startOrder": 724,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.login.startup.page.web.contrib\">\n\n  <extension target=\"org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService\" point=\"loginScreen\">\n    <loginScreenConfig>\n      <startupPages>\n        <startupPage id=\"web\" priority=\"100\">\n          <path>ui/</path>\n        </startupPage>\n      </startupPages>\n    </loginScreenConfig>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/login-startup-page-web-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.WebResources--resources",
              "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web/org.nuxeo.web.ui/org.nuxeo.web.ui.resources/Contributions/org.nuxeo.web.ui.resources--resources",
              "id": "org.nuxeo.web.ui.resources--resources",
              "registrationOrder": 23,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.WebResources",
                "name": "org.nuxeo.ecm.platform.WebResources",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"resources\" target=\"org.nuxeo.ecm.platform.WebResources\">\n\n    <resource name=\"nuxeo-app.html\" type=\"import\">\n      <uri>/ui/nuxeo-app.html</uri>\n    </resource>\n\n    <resource name=\"nuxeo-web-ui-bundle.html\" type=\"import\">\n      <uri>/ui/nuxeo-web-ui-bundle.html</uri>\n    </resource>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.WebResources--bundles",
              "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web/org.nuxeo.web.ui/org.nuxeo.web.ui.resources/Contributions/org.nuxeo.web.ui.resources--bundles",
              "id": "org.nuxeo.web.ui.resources--bundles",
              "registrationOrder": 16,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.WebResources",
                "name": "org.nuxeo.ecm.platform.WebResources",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"bundles\" target=\"org.nuxeo.ecm.platform.WebResources\">\n\n    <!-- main bundle with all import resources -->\n    <bundle name=\"web-ui\">\n      <resources>\n        <resource>nuxeo-app.html</resource>\n        <resource>nuxeo-web-ui-bundle.html</resource>\n      </resources>\n    </bundle>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web/org.nuxeo.web.ui/org.nuxeo.web.ui.resources",
          "name": "org.nuxeo.web.ui.resources",
          "requirements": [],
          "resolutionOrder": 954,
          "services": [],
          "startOrder": 800,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<component name=\"org.nuxeo.web.ui.resources\">\n\n  <extension target=\"org.nuxeo.ecm.platform.WebResources\" point=\"resources\">\n\n    <resource name=\"nuxeo-app.html\" type=\"import\">\n      <uri>/ui/nuxeo-app.html</uri>\n    </resource>\n\n    <resource name=\"nuxeo-web-ui-bundle.html\" type=\"import\">\n      <uri>/ui/nuxeo-web-ui-bundle.html</uri>\n    </resource>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.WebResources\" point=\"bundles\">\n\n    <!-- main bundle with all import resources -->\n    <bundle name=\"web-ui\">\n      <resources>\n        <resource>nuxeo-app.html</resource>\n        <resource>nuxeo-web-ui-bundle.html</resource>\n      </resources>\n    </bundle>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/webresources-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.url.service.DocumentViewCodecService--codecs",
              "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web/org.nuxeo.web.ui/org.nuxeo.url.codec.web.contribs/Contributions/org.nuxeo.url.codec.web.contribs--codecs",
              "id": "org.nuxeo.url.codec.web.contribs--codecs",
              "registrationOrder": 12,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.url.service.DocumentViewCodecService",
                "name": "org.nuxeo.ecm.platform.url.service.DocumentViewCodecService",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"codecs\" target=\"org.nuxeo.ecm.platform.url.service.DocumentViewCodecService\">\n    <documentViewCodec class=\"org.nuxeo.web.ui.url.codec.WebNotificationDocumentIdCodec\" enabled=\"true\" name=\"notificationDocId\" prefix=\"doc\" priority=\"100\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web/org.nuxeo.web.ui/org.nuxeo.url.codec.web.contribs",
          "name": "org.nuxeo.url.codec.web.contribs",
          "requirements": [],
          "resolutionOrder": 967,
          "services": [],
          "startOrder": 789,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.url.codec.web.contribs\">\n\n  <extension target=\"org.nuxeo.ecm.platform.url.service.DocumentViewCodecService\" point=\"codecs\">\n    <documentViewCodec name=\"notificationDocId\" enabled=\"true\" prefix=\"doc\" priority=\"100\"\n      class=\"org.nuxeo.web.ui.url.codec.WebNotificationDocumentIdCodec\" />\n  </extension>\n\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/url-codecs-web-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.web.common.requestcontroller.service.RequestControllerService--filterConfig",
              "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web/org.nuxeo.web.ui/org.nuxeo.web.ui.request.contrib/Contributions/org.nuxeo.web.ui.request.contrib--filterConfig",
              "id": "org.nuxeo.web.ui.request.contrib--filterConfig",
              "registrationOrder": 5,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.web.common.requestcontroller.service.RequestControllerService",
                "name": "org.nuxeo.ecm.platform.web.common.requestcontroller.service.RequestControllerService",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"filterConfig\" target=\"org.nuxeo.ecm.platform.web.common.requestcontroller.service.RequestControllerService\">\n    <filterConfig cacheTime=\"31536000\" cached=\"true\" name=\"cached_ui_static\">\n      <!-- if url contains a timestamp param: approximately one year -->\n      <pattern>/nuxeo/ui/.*\\\\?.*ts=.+</pattern>\n    </filterConfig>\n    <filterConfig cacheTime=\"86400\" cached=\"true\" name=\"ui_static\">\n      <!-- For other web ui resources: trade off between agressive caching and HF applying within 24 hours -->\n      <!-- Exclude JS and HTML files due to: https://jira.nuxeo.com/browse/NXP-25595 -->\n      <pattern>/nuxeo/ui/.*\\.(?!(html|js)$).*</pattern>\n    </filterConfig>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web/org.nuxeo.web.ui/org.nuxeo.web.ui.request.contrib",
          "name": "org.nuxeo.web.ui.request.contrib",
          "requirements": [
            "org.nuxeo.ecm.platform.web.common.requestcontroller.service.RequestControllerService.defaultContrib"
          ],
          "resolutionOrder": 968,
          "services": [],
          "startOrder": 799,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.web.ui.request.contrib\">\n\n  <require>org.nuxeo.ecm.platform.web.common.requestcontroller.service.RequestControllerService.defaultContrib</require>\n\n  <extension target=\"org.nuxeo.ecm.platform.web.common.requestcontroller.service.RequestControllerService\"\n    point=\"filterConfig\">\n    <filterConfig name=\"cached_ui_static\" cached=\"true\" cacheTime=\"31536000\">\n      <!-- if url contains a timestamp param: approximately one year -->\n      <pattern>${org.nuxeo.ecm.contextPath}/ui/.*\\\\?.*ts=.+</pattern>\n    </filterConfig>\n    <filterConfig name=\"ui_static\" cached=\"true\" cacheTime=\"86400\">\n      <!-- For other web ui resources: trade off between agressive caching and HF applying within 24 hours -->\n      <!-- Exclude JS and HTML files due to: https://jira.nuxeo.com/browse/NXP-25595 -->\n      <pattern>${org.nuxeo.ecm.contextPath}/ui/.*\\.(?!(html|js)$).*</pattern>\n    </filterConfig>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/browser-cache-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.runtime.ConfigurationService--configuration",
              "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web/org.nuxeo.web.ui/org.nuxeo.web.ui.properties.contrib/Contributions/org.nuxeo.web.ui.properties.contrib--configuration",
              "id": "org.nuxeo.web.ui.properties.contrib--configuration",
              "registrationOrder": 55,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.ConfigurationService",
                "name": "org.nuxeo.runtime.ConfigurationService",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"configuration\" target=\"org.nuxeo.runtime.ConfigurationService\">\n    <!-- enrichers -->\n    <property list=\"true\" name=\"org.nuxeo.web.ui.enrichers.document\">hasContent</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">firstAccessibleAncestor</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">permissions</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">breadcrumb</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">preview</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">favorites</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">subscribedNotifications</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">thumbnail</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">renditions</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">pendingTasks</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">runnableWorkflows</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">runningWorkflows</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">collections</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">audit</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">subtypes</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">tags</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">publications</property>\n    <property list=\"true\" name=\"org.nuxeo.web.ui.enrichers.blob\">appLinks</property>\n\n    <!-- Properties to be fetched when loading current document, default is 'properties' meaning all -->\n    <property list=\"true\" name=\"org.nuxeo.web.ui.fetch.document\">properties</property>\n\n    <!-- Date (time) format -->\n    <property name=\"org.nuxeo.web.ui.dateFormat\">LL</property>\n    <property name=\"org.nuxeo.web.ui.dateTimeFormat\">LLL</property>\n\n    <!-- First Day Of Week -->\n    <property name=\"org.nuxeo.web.ui.firstDayOfWeek\"/>\n\n    <!-- Comments only on doc with 'Commentable' facet ? -->\n    <property name=\"org.nuxeo.web.ui.enforceCommentable\">false</property>\n\n    <!-- Is pagination on for tasks endpoint ? -->\n    <property name=\"org.nuxeo.web.ui.taskEndpoint.isPaginated\">false</property>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web/org.nuxeo.web.ui/org.nuxeo.web.ui.properties.contrib",
          "name": "org.nuxeo.web.ui.properties.contrib",
          "requirements": [],
          "resolutionOrder": 969,
          "services": [],
          "startOrder": 798,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.web.ui.properties.contrib\">\n  <extension target=\"org.nuxeo.runtime.ConfigurationService\" point=\"configuration\">\n    <!-- enrichers -->\n    <property name=\"org.nuxeo.web.ui.enrichers.document\" list=\"true\">hasContent</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">firstAccessibleAncestor</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">permissions</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">breadcrumb</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">preview</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">favorites</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">subscribedNotifications</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">thumbnail</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">renditions</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">pendingTasks</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">runnableWorkflows</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">runningWorkflows</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">collections</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">audit</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">subtypes</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">tags</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.document\">publications</property>\n    <property name=\"org.nuxeo.web.ui.enrichers.blob\" list=\"true\">appLinks</property>\n\n    <!-- Properties to be fetched when loading current document, default is 'properties' meaning all -->\n    <property name=\"org.nuxeo.web.ui.fetch.document\" list=\"true\">properties</property>\n\n    <!-- Date (time) format -->\n    <property name=\"org.nuxeo.web.ui.dateFormat\">LL</property>\n    <property name=\"org.nuxeo.web.ui.dateTimeFormat\">LLL</property>\n\n    <!-- First Day Of Week -->\n    <property name=\"org.nuxeo.web.ui.firstDayOfWeek\"></property>\n\n    <!-- Comments only on doc with 'Commentable' facet ? -->\n    <property name=\"org.nuxeo.web.ui.enforceCommentable\">false</property>\n\n    <!-- Is pagination on for tasks endpoint ? -->\n    <property name=\"org.nuxeo.web.ui.taskEndpoint.isPaginated\">false</property>\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/web-ui-properties.xml",
          "xmlPureComponent": true
        }
      ],
      "fileName": "nuxeo-web-ui-10.10-HF33.jar",
      "groupId": "org.nuxeo.web.ui",
      "hierarchyPath": "/grp:org.nuxeo.web.ui/grp:org.nuxeo.web/org.nuxeo.web.ui",
      "id": "org.nuxeo.web.ui",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: Apache Maven\r\nBuilt-By: jenkins\r\nBuild-Jdk: 1.8.0_265\r\nBundle-ManifestVersion: 1\r\nBundle-Version: 0.0.1\r\nBundle-Vendor: Nuxeo\r\nNuxeo-RequiredBy: org.nuxeo.ecm.war\r\nBundle-Name: Nuxeo Web UI\r\nBundle-SymbolicName: org.nuxeo.web.ui;singleton:=true\r\nNuxeo-Component: OSGI-INF/auth-config.xml, OSGI-INF/actions-contrib.xm\r\n l, OSGI-INF/login-startup-page-web-contrib.xml OSGI-INF/webresources-\r\n contrib.xml, OSGI-INF/url-codecs-web-contrib.xml, OSGI-INF/browser-ca\r\n che-contrib.xml, OSGI-INF/web-ui-properties.xml\r\n\r\n",
      "maxResolutionOrder": 969,
      "minResolutionOrder": 951,
      "packages": [
        "nuxeo-10.10-HF01",
        "nuxeo-10.10-HF02",
        "nuxeo-10.10-HF03",
        "nuxeo-10.10-HF04",
        "nuxeo-10.10-HF05",
        "nuxeo-10.10-HF06",
        "nuxeo-10.10-HF07",
        "nuxeo-10.10-HF08",
        "nuxeo-10.10-HF09",
        "nuxeo-10.10-HF10",
        "nuxeo-10.10-HF11",
        "nuxeo-10.10-HF12",
        "nuxeo-10.10-HF13",
        "nuxeo-10.10-HF13",
        "nuxeo-10.10-HF14",
        "nuxeo-10.10-HF15",
        "nuxeo-10.10-HF16",
        "nuxeo-10.10-HF17",
        "nuxeo-10.10-HF18",
        "nuxeo-10.10-HF19",
        "nuxeo-10.10-HF20",
        "nuxeo-10.10-HF21",
        "nuxeo-10.10-HF22",
        "nuxeo-10.10-HF23",
        "nuxeo-10.10-HF24",
        "nuxeo-10.10-HF25",
        "nuxeo-10.10-HF26",
        "nuxeo-10.10-HF27",
        "nuxeo-10.10-HF28",
        "nuxeo-10.10-HF29",
        "nuxeo-10.10-HF30",
        "nuxeo-10.10-HF31",
        "nuxeo-10.10-HF32",
        "nuxeo-10.10-HF33",
        "nuxeo-web-ui"
      ],
      "readme": {
        "blobProviderId": "default",
        "content": "[![Build Status](https://qa.nuxeo.org/jenkins/buildStatus/icon?job=master/addons_nuxeo-web-ui-master)](https://qa.nuxeo.org/jenkins/job/master/job/addons_nuxeo-web-ui-master/)\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/5d8cd2a3c56745ecaae7e7f92a683ea7)](https://www.codacy.com/app/Nuxeo/nuxeo-web-ui)\n\n## Nuxeo Web UI\n\n### About\nNuxeo Web UI is a standard base web application for Nuxeo Platform. It is highly customizable and scalable, developed with [Polymer](https://polymer-library.polymer-project.org/) and leveraging [nuxeo-elements](https://github.com/nuxeo/nuxeo-elements), our library of custom elements.\n\n## Getting Started\n\n### Install dependencies\n\n```sh\nnpm install -g gulp bower && npm install && bower install\n```\n\n### Development workflow\n\n#### Serve / watch\n\n```sh\ngulp serve\n```\n\nThis outputs an IP address you can use to locally test and another that can be used on devices connected to your network.\n\n#### Run tests\n\n```sh\ngulp test:local\n```\n\nThis runs the unit tests defined in the `app/test` directory through [web-component-tester](https://github.com/Polymer/web-component-tester).\n\n#### Build & Vulcanize\n\n```sh\ngulp\n```\n\nBuild and optimize the current project, ready for deployment. This includes linting as well as vulcanization, image, script, stylesheet and HTML optimization and minification.\n\n## License\n\n[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html) \n\n(C) Copyright Nuxeo Corp. (http://nuxeo.com/)\n\nAll images, icons, fonts, and videos contained in this folder are copyrighted by Nuxeo, all rights reserved.\n\n## About Nuxeo\n\nNuxeo dramatically improves how content-based applications are built, managed and deployed, making customers more agile, innovative and successful. Nuxeo provides a next generation, enterprise ready platform for building traditional and cutting-edge content oriented applications. Combining a powerful application development environment with SaaS-based tools and a modular architecture, the Nuxeo Platform and Products provide clear business value to some of the most recognizable brands including Verizon, Electronic Arts, Sharp, FICO, the U.S. Navy, and Boeing. Nuxeo is headquartered in New York and Paris. More information is available at www.nuxeo.com.\n",
        "digest": "a45facbc87a9bd4b47ad95007eb0aaaa",
        "encoding": "UTF-8",
        "length": 2266,
        "mimeType": "text/plain",
        "name": "README.md"
      },
      "requirements": [],
      "version": "10.10-HF33"
    },
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-core-api",
      "artifactVersion": "10.10-HF32",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.ecm.core",
          "org.nuxeo.ecm.core.api",
          "org.nuxeo.ecm.core.bulk",
          "org.nuxeo.ecm.core.cache",
          "org.nuxeo.ecm.core.event",
          "org.nuxeo.ecm.core.io",
          "org.nuxeo.ecm.core.mimetype",
          "org.nuxeo.ecm.core.mongodb",
          "org.nuxeo.ecm.core.persistence",
          "org.nuxeo.ecm.core.query",
          "org.nuxeo.ecm.core.redis",
          "org.nuxeo.ecm.core.schema",
          "org.nuxeo.ecm.platform.el"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.core",
        "id": "grp:org.nuxeo.ecm.core",
        "name": "org.nuxeo.ecm.core",
        "parentIds": [],
        "readmes": [],
        "version": "10.10"
      },
      "bundleId": "org.nuxeo.ecm.core.api",
      "components": [
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.core.api.adapter.DocumentAdapterService",
          "documentation": "\n    Service providing a dynamic adapter mechanism to adapt documents to random interfaces.\n    @author Bogdan Stefanescu (bs@nuxeo.com)\n  \n",
          "documentationHtml": "<p>\nService providing a dynamic adapter mechanism to adapt documents to random interfaces.\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.api.DocumentAdapterService",
              "descriptors": [
                "org.nuxeo.ecm.core.api.adapter.DocumentAdapterDescriptor"
              ],
              "documentation": "\n\n      Extension Point for registering new document adapters\n      XML extensions may contain any number of 'adapter' elements of the form:\n      <adapter\n    class=\"org.nuxeo.ecm.sample.adapter.Versionable\" facet=\"Versionable\" factory=\"org.nuxeo.ecm.sample.adapter.VersionableFactory\"/>\n\n      This means any document having the facet 'facet' can be adapted to a 'class' object using the factory 'factory'\n      <p/>\n\n      The facet attribute is optional and serve to restrict the applicability of the adapter.\n      If no facet is specified the adapter will be applicable on any document.\n    \n",
              "documentationHtml": "<p>\nExtension Point for registering new document adapters\nXML extensions may contain any number of &#39;adapter&#39; elements of the form:\n\n</p><p>\nThis means any document having the facet &#39;facet&#39; can be adapted to a &#39;class&#39; object using the factory &#39;factory&#39;\n</p><p>\nThe facet attribute is optional and serve to restrict the applicability of the adapter.\nIf no facet is specified the adapter will be applicable on any document.\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.api.DocumentAdapterService/ExtensionPoints/org.nuxeo.ecm.core.api.DocumentAdapterService--adapters",
              "id": "org.nuxeo.ecm.core.api.DocumentAdapterService--adapters",
              "label": "adapters (org.nuxeo.ecm.core.api.DocumentAdapterService)",
              "name": "adapters",
              "version": "10.10-HF32"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.api.DocumentAdapterService",
          "name": "org.nuxeo.ecm.core.api.DocumentAdapterService",
          "requirements": [],
          "resolutionOrder": 110,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.api.DocumentAdapterService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.api.DocumentAdapterService/Services/org.nuxeo.ecm.core.api.adapter.DocumentAdapterService",
              "id": "org.nuxeo.ecm.core.api.adapter.DocumentAdapterService",
              "overriden": false,
              "version": "10.10-HF32"
            }
          ],
          "startOrder": 836,
          "version": "10.10-HF32",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n\n<component name=\"org.nuxeo.ecm.core.api.DocumentAdapterService\" version=\"1.0.0\">\n  <documentation>\n    Service providing a dynamic adapter mechanism to adapt documents to random interfaces.\n    @author Bogdan Stefanescu (bs@nuxeo.com)\n  </documentation>\n\n  <implementation class=\"org.nuxeo.ecm.core.api.adapter.DocumentAdapterService\"/>\n\n  <service>\n    <provide\n      interface=\"org.nuxeo.ecm.core.api.adapter.DocumentAdapterService\"/>\n  </service>\n\n  <extension-point name=\"adapters\">\n\n    <documentation>\n      Extension Point for registering new document adapters\n      XML extensions may contain any number of 'adapter' elements of the form:\n      <adapter facet=\"Versionable\"\n        class=\"org.nuxeo.ecm.sample.adapter.Versionable\"\n        factory=\"org.nuxeo.ecm.sample.adapter.VersionableFactory\"/>\n      This means any document having the facet 'facet' can be adapted to a 'class' object using the factory 'factory'\n      <p/>\n      The facet attribute is optional and serve to restrict the applicability of the adapter.\n      If no facet is specified the adapter will be applicable on any document.\n    </documentation>\n\n    <object class=\"org.nuxeo.ecm.core.api.adapter.DocumentAdapterDescriptor\"/>\n\n  </extension-point>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/DocumentAdapterService.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.core.api.repository.RepositoryManagerImpl",
          "documentation": "\n    Manages repositories.\n  \n",
          "documentationHtml": "<p>\nManages repositories.\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.api.repository.RepositoryManager",
              "descriptors": [
                "org.nuxeo.ecm.core.api.repository.Repository"
              ],
              "documentation": "\n      Obsolete repositories definition.\n      Use org.nuxeo.ecm.core.storage.sql.RepositoryService instead.\n    \n",
              "documentationHtml": "<p>\nObsolete repositories definition.\nUse org.nuxeo.ecm.core.storage.sql.RepositoryService instead.\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.api.repository.RepositoryManager/ExtensionPoints/org.nuxeo.ecm.core.api.repository.RepositoryManager--repositories",
              "id": "org.nuxeo.ecm.core.api.repository.RepositoryManager--repositories",
              "label": "repositories (org.nuxeo.ecm.core.api.repository.RepositoryManager)",
              "name": "repositories",
              "version": "10.10-HF32"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.api.repository.RepositoryManager",
          "name": "org.nuxeo.ecm.core.api.repository.RepositoryManager",
          "requirements": [],
          "resolutionOrder": 111,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.api.repository.RepositoryManager",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.api.repository.RepositoryManager/Services/org.nuxeo.ecm.core.api.repository.RepositoryManager",
              "id": "org.nuxeo.ecm.core.api.repository.RepositoryManager",
              "overriden": false,
              "version": "10.10-HF32"
            }
          ],
          "startOrder": 841,
          "version": "10.10-HF32",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n\n<component name=\"org.nuxeo.ecm.core.api.repository.RepositoryManager\" version=\"1.0.0\">\n  <documentation>\n    Manages repositories.\n  </documentation>\n\n  <implementation class=\"org.nuxeo.ecm.core.api.repository.RepositoryManagerImpl\"/>\n\n  <service>\n    <provide\n      interface=\"org.nuxeo.ecm.core.api.repository.RepositoryManager\"/>\n  </service>\n\n  <extension-point name=\"repositories\">\n    <documentation>\n      Obsolete repositories definition.\n      Use org.nuxeo.ecm.core.storage.sql.RepositoryService instead.\n    </documentation>\n    <object class=\"org.nuxeo.ecm.core.api.repository.Repository\"/>\n  </extension-point>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/RepositoryManager.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.core.api.validation.DocumentValidationServiceImpl",
          "documentation": "\n    Service providing a way to validates document according to constraints described in schemas.\n  \n",
          "documentationHtml": "<p>\nService providing a way to validates document according to constraints described in schemas.\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.api.DocumentValidationService",
              "descriptors": [
                "org.nuxeo.ecm.core.api.validation.DocumentValidationDescriptor"
              ],
              "documentation": "\n\n      Extension Point to enable/disable validation in any context.\n      <validation\n    activated=\"true\" context=\"CoreSession.saveDocument\"/>\n",
              "documentationHtml": "<p>\nExtension Point to enable/disable validation in any context.\n</p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.api.DocumentValidationService/ExtensionPoints/org.nuxeo.ecm.core.api.DocumentValidationService--activations",
              "id": "org.nuxeo.ecm.core.api.DocumentValidationService--activations",
              "label": "activations (org.nuxeo.ecm.core.api.DocumentValidationService)",
              "name": "activations",
              "version": "10.10-HF32"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.api.DocumentValidationService",
          "name": "org.nuxeo.ecm.core.api.DocumentValidationService",
          "requirements": [],
          "resolutionOrder": 112,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.api.DocumentValidationService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.api.DocumentValidationService/Services/org.nuxeo.ecm.core.api.validation.DocumentValidationService",
              "id": "org.nuxeo.ecm.core.api.validation.DocumentValidationService",
              "overriden": false,
              "version": "10.10-HF32"
            }
          ],
          "startOrder": 837,
          "version": "10.10-HF32",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n\n<component name=\"org.nuxeo.ecm.core.api.DocumentValidationService\" version=\"1.0.0\">\n  <documentation>\n    Service providing a way to validates document according to constraints described in schemas.\n  </documentation>\n\n  <implementation class=\"org.nuxeo.ecm.core.api.validation.DocumentValidationServiceImpl\" />\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.core.api.validation.DocumentValidationService\" />\n  </service>\n\n  <extension-point name=\"activations\">\n\n    <documentation>\n      Extension Point to enable/disable validation in any context.\n      <validation context=\"CoreSession.saveDocument\" activated=\"true\" />\n    </documentation>\n\n    <object class=\"org.nuxeo.ecm.core.api.validation.DocumentValidationDescriptor\" />\n\n  </extension-point>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/DocumentValidationService.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.api.DocumentValidationService--activations",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.api.DocumentValidationService.activations/Contributions/org.nuxeo.ecm.core.api.DocumentValidationService.activations--activations",
              "id": "org.nuxeo.ecm.core.api.DocumentValidationService.activations--activations",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.api.DocumentValidationService",
                "name": "org.nuxeo.ecm.core.api.DocumentValidationService",
                "type": "service"
              },
              "version": "10.10-HF32",
              "xml": "<extension point=\"activations\" target=\"org.nuxeo.ecm.core.api.DocumentValidationService\">\n    <validation activated=\"true\" context=\"createDocument\"/>\n    <validation activated=\"true\" context=\"saveDocument\"/>\n    <validation activated=\"true\" context=\"importDocument\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.api.DocumentValidationService.activations",
          "name": "org.nuxeo.ecm.core.api.DocumentValidationService.activations",
          "requirements": [
            "org.nuxeo.ecm.core.api.DocumentValidationService"
          ],
          "resolutionOrder": 113,
          "services": [],
          "startOrder": 111,
          "version": "10.10-HF32",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.api.DocumentValidationService.activations\">\n\n  <require>org.nuxeo.ecm.core.api.DocumentValidationService</require>\n\n  <extension target=\"org.nuxeo.ecm.core.api.DocumentValidationService\" point=\"activations\">\n    <validation context=\"createDocument\" activated=\"true\" />\n    <validation context=\"saveDocument\" activated=\"true\" />\n    <validation context=\"importDocument\" activated=\"true\" />\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/DocumentValidationService-activation.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.core.blob.BlobManagerComponent",
          "documentation": "\n    Blob Manager, delegating logic to the appropriate Blob Provider.\n  \n",
          "documentationHtml": "<p>\nBlob Manager, delegating logic to the appropriate Blob Provider.\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.blob.BlobManager",
              "descriptors": [
                "org.nuxeo.ecm.core.blob.BlobProviderDescriptor"
              ],
              "documentation": "\n      Extension points to register the blob providers.\n    \n",
              "documentationHtml": "<p>\nExtension points to register the blob providers.\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.blob.BlobManager/ExtensionPoints/org.nuxeo.ecm.core.blob.BlobManager--configuration",
              "id": "org.nuxeo.ecm.core.blob.BlobManager--configuration",
              "label": "configuration (org.nuxeo.ecm.core.blob.BlobManager)",
              "name": "configuration",
              "version": "10.10-HF32"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.blob.BlobManager",
          "name": "org.nuxeo.ecm.core.blob.BlobManager",
          "requirements": [],
          "resolutionOrder": 114,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.blob.BlobManager",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.blob.BlobManager/Services/org.nuxeo.ecm.core.blob.BlobManager",
              "id": "org.nuxeo.ecm.core.blob.BlobManager",
              "overriden": false,
              "version": "10.10-HF32"
            }
          ],
          "startOrder": 844,
          "version": "10.10-HF32",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.blob.BlobManager\" version=\"1.0.0\">\n\n  <documentation>\n    Blob Manager, delegating logic to the appropriate Blob Provider.\n  </documentation>\n\n  <implementation class=\"org.nuxeo.ecm.core.blob.BlobManagerComponent\" />\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.core.blob.BlobManager\" />\n  </service>\n\n  <extension-point name=\"configuration\">\n    <documentation>\n      Extension points to register the blob providers.\n    </documentation>\n    <object class=\"org.nuxeo.ecm.core.blob.BlobProviderDescriptor\" />\n  </extension-point>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/blobmanager-service.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterComponent",
          "documentation": "\n    The BlobHolderAdapter provides the BlobHolderAdapterService wich give the needed BlobHolder.\n    A BlobHolder is an adapter that provides methods to get binaries and related metadatas.\n    @author Thierry Delprat (td@nuxeo.com)\n  \n",
          "documentationHtml": "<p>\nThe BlobHolderAdapter provides the BlobHolderAdapterService wich give the needed BlobHolder.\nA BlobHolder is an adapter that provides methods to get binaries and related metadatas.\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterComponent",
              "descriptors": [
                "org.nuxeo.ecm.core.api.blobholder.BlobHolderFactoryDescriptor"
              ],
              "documentation": "\n      @author Thierry Delprat (td@nuxeo.com)\n\n      This extension point let you contribute custom factories for BlobHolder\n      according to DocumentType\n    \n",
              "documentationHtml": "<p>\nThis extension point let you contribute custom factories for BlobHolder\naccording to DocumentType\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterComponent/ExtensionPoints/org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterComponent--BlobHolderFactory",
              "id": "org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterComponent--BlobHolderFactory",
              "label": "BlobHolderFactory (org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterComponent)",
              "name": "BlobHolderFactory",
              "version": "10.10-HF32"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterComponent",
              "descriptors": [
                "org.nuxeo.ecm.core.api.externalblob.ExternalBlobAdapterDescriptor"
              ],
              "documentation": "\n      @author Anahide Tchertchian (at@nuxeo.com)\n\n      Contribute external blob adapters. Contributed classes have to follow the\n      ExternalBlobAdapter interface.\n\n      Example of contribution using the default file system adapter:\n\n      <code>\n    <adapter\n        class=\"org.nuxeo.ecm.core.api.externalblob.FileSystemExternalBlobAdapter\" prefix=\"fs\">\n        <property name=\"container\">/tmp/</property>\n    </adapter>\n</code>\n",
              "documentationHtml": "<p>\nContribute external blob adapters. Contributed classes have to follow the\nExternalBlobAdapter interface.\n</p><p>\nExample of contribution using the default file system adapter:\n</p><p>\n</p><pre><code>    &lt;adapter\n        class&#61;&#34;org.nuxeo.ecm.core.api.externalblob.FileSystemExternalBlobAdapter&#34; prefix&#61;&#34;fs&#34;&gt;\n        &lt;property name&#61;&#34;container&#34;&gt;/tmp/&lt;/property&gt;\n    &lt;/adapter&gt;\n</code></pre><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterComponent/ExtensionPoints/org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterComponent--ExternalBlobAdapter",
              "id": "org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterComponent--ExternalBlobAdapter",
              "label": "ExternalBlobAdapter (org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterComponent)",
              "name": "ExternalBlobAdapter",
              "version": "10.10-HF32"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterComponent",
          "name": "org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterComponent",
          "requirements": [],
          "resolutionOrder": 115,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterComponent",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterComponent/Services/org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterService",
              "id": "org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterService",
              "overriden": false,
              "version": "10.10-HF32"
            }
          ],
          "startOrder": 838,
          "version": "10.10-HF32",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component\n  name=\"org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterComponent\">\n\n  <implementation\n    class=\"org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterComponent\" />\n  <documentation>\n    The BlobHolderAdapter provides the BlobHolderAdapterService wich give the needed BlobHolder.\n    A BlobHolder is an adapter that provides methods to get binaries and related metadatas.\n    @author Thierry Delprat (td@nuxeo.com)\n  </documentation>\n  \n  <service>\n    <provide\n      interface=\"org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterService\" />\n  </service>\n\n  <extension-point name=\"BlobHolderFactory\">\n    <documentation>\n      @author Thierry Delprat (td@nuxeo.com)\n\n      This extension point let you contribute custom factories for BlobHolder\n      according to DocumentType\n    </documentation>\n\n    <object\n      class=\"org.nuxeo.ecm.core.api.blobholder.BlobHolderFactoryDescriptor\" />\n  </extension-point>\n\n  <extension-point name=\"ExternalBlobAdapter\">\n    <documentation>\n      @author Anahide Tchertchian (at@nuxeo.com)\n\n      Contribute external blob adapters. Contributed classes have to follow the\n      ExternalBlobAdapter interface.\n\n      Example of contribution using the default file system adapter:\n\n      <code>\n        <adapter prefix=\"fs\"\n          class=\"org.nuxeo.ecm.core.api.externalblob.FileSystemExternalBlobAdapter\">\n          <property name=\"container\">/tmp/</property>\n        </adapter>\n      </code>\n\n    </documentation>\n\n    <object\n      class=\"org.nuxeo.ecm.core.api.externalblob.ExternalBlobAdapterDescriptor\" />\n  </extension-point>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/blob-holder-service-framework.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentation": "Adapters BlobHolders\n",
          "documentationHtml": "<p>\nAdapters BlobHolders</p>",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.api.DocumentAdapterService--adapters",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.api.blohodlers.adapters/Contributions/org.nuxeo.ecm.core.api.blohodlers.adapters--adapters",
              "id": "org.nuxeo.ecm.core.api.blohodlers.adapters--adapters",
              "registrationOrder": 2,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.api.DocumentAdapterService",
                "name": "org.nuxeo.ecm.core.api.DocumentAdapterService",
                "type": "service"
              },
              "version": "10.10-HF32",
              "xml": "<extension point=\"adapters\" target=\"org.nuxeo.ecm.core.api.DocumentAdapterService\">\n    <adapter class=\"org.nuxeo.ecm.core.api.blobholder.BlobHolder\" factory=\"org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterFactory\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.api.blohodlers.adapters",
          "name": "org.nuxeo.ecm.core.api.blohodlers.adapters",
          "requirements": [],
          "resolutionOrder": 116,
          "services": [],
          "startOrder": 112,
          "version": "10.10-HF32",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n\n<component name=\"org.nuxeo.ecm.core.api.blohodlers.adapters\">\n  <documentation>Adapters BlobHolders</documentation>\n\n  <extension target=\"org.nuxeo.ecm.core.api.DocumentAdapterService\"\n    point=\"adapters\">\n    <adapter class=\"org.nuxeo.ecm.core.api.blobholder.BlobHolder\"\n      factory=\"org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterFactory\" />\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/blob-holder-adapters-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.core.api.pathsegment.PathSegmentComponent",
          "documentation": "\n    Component defining the implementation to use to compute the path\n    segment for a new DocumentModel.\n  \n",
          "documentationHtml": "<p>\nComponent defining the implementation to use to compute the path\nsegment for a new DocumentModel.\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.api.pathsegment.PathSegmentService",
              "descriptors": [
                "org.nuxeo.ecm.core.api.pathsegment.PathSegmentServiceDescriptor"
              ],
              "documentation": "\n      Extension point defining the implementation for the computation of\n      the path segment for new a DocumentModel. Example:\n\n      <code>\n    <service class=\"some-class\"/>\n</code>\n\n\n      The provided class must implement org.nuxeo.ecm.core.api.pathsegment.PathSegmentService\n\n      The default implementation is org.nuxeo.ecm.core.api.pathsegment.PathSegmentServiceDefault\n      You can contribute org.nuxeo.ecm.core.api.pathsegment.PathSegmentServiceCompat\n      to get pre-Nuxeo 5.4 behavior.\n    \n",
              "documentationHtml": "<p>\nExtension point defining the implementation for the computation of\nthe path segment for new a DocumentModel. Example:\n</p><p>\n</p><pre><code>    &lt;service class&#61;&#34;some-class&#34;/&gt;\n</code></pre><p>\nThe provided class must implement org.nuxeo.ecm.core.api.pathsegment.PathSegmentService\n</p><p>\nThe default implementation is org.nuxeo.ecm.core.api.pathsegment.PathSegmentServiceDefault\nYou can contribute org.nuxeo.ecm.core.api.pathsegment.PathSegmentServiceCompat\nto get pre-Nuxeo 5.4 behavior.\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.api.pathsegment.PathSegmentService/ExtensionPoints/org.nuxeo.ecm.core.api.pathsegment.PathSegmentService--pathSegmentService",
              "id": "org.nuxeo.ecm.core.api.pathsegment.PathSegmentService--pathSegmentService",
              "label": "pathSegmentService (org.nuxeo.ecm.core.api.pathsegment.PathSegmentService)",
              "name": "pathSegmentService",
              "version": "10.10-HF32"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.api.pathsegment.PathSegmentService",
          "name": "org.nuxeo.ecm.core.api.pathsegment.PathSegmentService",
          "requirements": [],
          "resolutionOrder": 117,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.api.pathsegment.PathSegmentService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.api.pathsegment.PathSegmentService/Services/org.nuxeo.ecm.core.api.pathsegment.PathSegmentService",
              "id": "org.nuxeo.ecm.core.api.pathsegment.PathSegmentService",
              "overriden": false,
              "version": "10.10-HF32"
            }
          ],
          "startOrder": 839,
          "version": "10.10-HF32",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.api.pathsegment.PathSegmentService\">\n\n  <implementation\n    class=\"org.nuxeo.ecm.core.api.pathsegment.PathSegmentComponent\" />\n  <documentation>\n    Component defining the implementation to use to compute the path\n    segment for a new DocumentModel.\n  </documentation>\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.core.api.pathsegment.PathSegmentService\" />\n  </service>\n\n  <extension-point name=\"pathSegmentService\">\n    <documentation>\n      Extension point defining the implementation for the computation of\n      the path segment for new a DocumentModel. Example:\n\n      <code>\n        <service class=\"some-class\" />\n      </code>\n\n      The provided class must implement org.nuxeo.ecm.core.api.pathsegment.PathSegmentService\n\n      The default implementation is org.nuxeo.ecm.core.api.pathsegment.PathSegmentServiceDefault\n      You can contribute org.nuxeo.ecm.core.api.pathsegment.PathSegmentServiceCompat\n      to get pre-Nuxeo 5.4 behavior.\n    </documentation>\n\n    <object\n      class=\"org.nuxeo.ecm.core.api.pathsegment.PathSegmentServiceDescriptor\" />\n\n  </extension-point>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/pathsegment-service.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.core.api.localconfiguration.LocalConfigurationServiceImpl",
          "documentation": "\n    The LocalConfiguration service manages LocalConfiguration classes.\n    It provides a method to retrieve LocalConfiguration from a current document\n    and a given facet.\n\n    @author Thomas Roger (troger@nuxeo.com)\n  \n",
          "documentationHtml": "<p>\nThe LocalConfiguration service manages LocalConfiguration classes.\nIt provides a method to retrieve LocalConfiguration from a current document\nand a given facet.\n</p><p></p>",
          "extensionPoints": [],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.core.LocalConfigurationService",
          "name": "org.nuxeo.core.LocalConfigurationService",
          "requirements": [],
          "resolutionOrder": 118,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.core.LocalConfigurationService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.core.LocalConfigurationService/Services/org.nuxeo.ecm.core.api.localconfiguration.LocalConfigurationService",
              "id": "org.nuxeo.ecm.core.api.localconfiguration.LocalConfigurationService",
              "overriden": false,
              "version": "10.10-HF32"
            }
          ],
          "startOrder": 825,
          "version": "10.10-HF32",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.core.LocalConfigurationService\">\n\n  <documentation>\n    The LocalConfiguration service manages LocalConfiguration classes.\n    It provides a method to retrieve LocalConfiguration from a current document\n    and a given facet.\n\n    @author Thomas Roger (troger@nuxeo.com)\n  </documentation>\n\n  <implementation\n    class=\"org.nuxeo.ecm.core.api.localconfiguration.LocalConfigurationServiceImpl\"/>\n\n  <service>\n    <provide\n      interface=\"org.nuxeo.ecm.core.api.localconfiguration.LocalConfigurationService\"/>\n  </service>\n</component>\n",
          "xmlFileName": "/OSGI-INF/local-configuration-service.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.core.api.propertiesmapping.impl.PropertiesMappingComponent",
          "documentation": "",
          "documentationHtml": "",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.api.propertiesmapping.PropertiesMappingComponent",
              "descriptors": [
                "org.nuxeo.ecm.core.api.propertiesmapping.PropertiesMappingDescriptor"
              ],
              "documentation": "\n      This extension point can be used to register Mappings.\n      Mapping is in the form : target DocumentModel property path : source DocumentModel property path\n      <code>\n    <mapping name=\"mappingName\">\n        <property path=\"somePropOnTargetDoc\">somePropOnSourceDoc</property>\n    </mapping>\n</code>\n",
              "documentationHtml": "<p>\nThis extension point can be used to register Mappings.\nMapping is in the form : target DocumentModel property path : source DocumentModel property path\n</p><p></p><pre><code>    &lt;mapping name&#61;&#34;mappingName&#34;&gt;\n        &lt;property path&#61;&#34;somePropOnTargetDoc&#34;&gt;somePropOnSourceDoc&lt;/property&gt;\n    &lt;/mapping&gt;\n</code></pre><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.api.propertiesmapping.PropertiesMappingComponent/ExtensionPoints/org.nuxeo.ecm.core.api.propertiesmapping.PropertiesMappingComponent--mapping",
              "id": "org.nuxeo.ecm.core.api.propertiesmapping.PropertiesMappingComponent--mapping",
              "label": "mapping (org.nuxeo.ecm.core.api.propertiesmapping.PropertiesMappingComponent)",
              "name": "mapping",
              "version": "10.10-HF32"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.api.propertiesmapping.PropertiesMappingComponent",
          "name": "org.nuxeo.ecm.core.api.propertiesmapping.PropertiesMappingComponent",
          "requirements": [],
          "resolutionOrder": 119,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.api.propertiesmapping.PropertiesMappingComponent",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.api.propertiesmapping.PropertiesMappingComponent/Services/org.nuxeo.ecm.core.api.propertiesmapping.PropertiesMappingService",
              "id": "org.nuxeo.ecm.core.api.propertiesmapping.PropertiesMappingService",
              "overriden": false,
              "version": "10.10-HF32"
            }
          ],
          "startOrder": 840,
          "version": "10.10-HF32",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.api.propertiesmapping.PropertiesMappingComponent\">\n\n  <implementation class=\"org.nuxeo.ecm.core.api.propertiesmapping.impl.PropertiesMappingComponent\" version=\"1.0.0\"/>\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.core.api.propertiesmapping.PropertiesMappingService\" />\n  </service>\n\n  <documentation>\n  </documentation>\n\n  <extension-point name=\"mapping\">\n    <documentation>\n      This extension point can be used to register Mappings.\n      Mapping is in the form : target DocumentModel property path : source DocumentModel property path\n      <code>\n        <mapping name=\"mappingName\">\n          <property path=\"somePropOnTargetDoc\">somePropOnSourceDoc</property>\n        </mapping>\n      </code>\n    </documentation>\n    <object class=\"org.nuxeo.ecm.core.api.propertiesmapping.PropertiesMappingDescriptor\"/>\n  </extension-point>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/propertiesmapping-service.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentation": "\n    Adapters contribution for thumbnail\n  \n",
          "documentationHtml": "<p>\nAdapters contribution for thumbnail\n</p><p></p>",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.api.DocumentAdapterService--adapters",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.api.thumbnail.adapter/Contributions/org.nuxeo.ecm.core.api.thumbnail.adapter--adapters",
              "id": "org.nuxeo.ecm.core.api.thumbnail.adapter--adapters",
              "registrationOrder": 3,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.api.DocumentAdapterService",
                "name": "org.nuxeo.ecm.core.api.DocumentAdapterService",
                "type": "service"
              },
              "version": "10.10-HF32",
              "xml": "<extension point=\"adapters\" target=\"org.nuxeo.ecm.core.api.DocumentAdapterService\">\n    <adapter class=\"org.nuxeo.ecm.core.api.thumbnail.ThumbnailAdapter\" factory=\"org.nuxeo.ecm.core.api.thumbnail.ThumbnailAdapterFactory\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.api.thumbnail.adapter",
          "name": "org.nuxeo.ecm.core.api.thumbnail.adapter",
          "requirements": [],
          "resolutionOrder": 120,
          "services": [],
          "startOrder": 114,
          "version": "10.10-HF32",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n\n<component name=\"org.nuxeo.ecm.core.api.thumbnail.adapter\">\n  <documentation>\n    Adapters contribution for thumbnail\n  </documentation>\n\n  <extension target=\"org.nuxeo.ecm.core.api.DocumentAdapterService\"\n    point=\"adapters\">\n    <adapter\n      class=\"org.nuxeo.ecm.core.api.thumbnail.ThumbnailAdapter\"\n      factory=\"org.nuxeo.ecm.core.api.thumbnail.ThumbnailAdapterFactory\" />\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/thumbnail-adapter-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.core.api.thumbnail.ThumbnailServiceImpl",
          "documentation": "",
          "documentationHtml": "",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.api.thumbnail.ThumbnailService",
              "descriptors": [
                "org.nuxeo.ecm.core.api.thumbnail.ThumbnailFactoryDescriptor"
              ],
              "documentation": "\n      @author Vladimir Pasquier (vpasquier@nuxeo.com)\n      This extension\n      provides thumbnail factories according to the type, facet and\n      default one.\n      <code>\n    <thumbnailFactory facet=\"Folderish\"\n        factoryClass=\"org.nuxeo.ecm.platform.thumbnail.factories.ThumbnailFolderishFactory\" name=\"thumbnailFolderishFactory\"/>\n    <thumbnailFactory\n        factoryClass=\"org.nuxeo.ecm.platform.thumbnail.factories.ThumbnailDocumentFactory\" name=\"thumbnailDocumentFactory\"/>\n</code>\n",
              "documentationHtml": "<p>\nThis extension\nprovides thumbnail factories according to the type, facet and\ndefault one.\n</p><p></p><pre><code>    &lt;thumbnailFactory facet&#61;&#34;Folderish&#34;\n        factoryClass&#61;&#34;org.nuxeo.ecm.platform.thumbnail.factories.ThumbnailFolderishFactory&#34; name&#61;&#34;thumbnailFolderishFactory&#34;/&gt;\n    &lt;thumbnailFactory\n        factoryClass&#61;&#34;org.nuxeo.ecm.platform.thumbnail.factories.ThumbnailDocumentFactory&#34; name&#61;&#34;thumbnailDocumentFactory&#34;/&gt;\n</code></pre><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.api.thumbnail.ThumbnailService/ExtensionPoints/org.nuxeo.ecm.core.api.thumbnail.ThumbnailService--thumbnailFactory",
              "id": "org.nuxeo.ecm.core.api.thumbnail.ThumbnailService--thumbnailFactory",
              "label": "thumbnailFactory (org.nuxeo.ecm.core.api.thumbnail.ThumbnailService)",
              "name": "thumbnailFactory",
              "version": "10.10-HF32"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.api.thumbnail.ThumbnailService",
          "name": "org.nuxeo.ecm.core.api.thumbnail.ThumbnailService",
          "requirements": [],
          "resolutionOrder": 121,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.api.thumbnail.ThumbnailService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.api.thumbnail.ThumbnailService/Services/org.nuxeo.ecm.core.api.thumbnail.ThumbnailService",
              "id": "org.nuxeo.ecm.core.api.thumbnail.ThumbnailService",
              "overriden": false,
              "version": "10.10-HF32"
            }
          ],
          "startOrder": 842,
          "version": "10.10-HF32",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.api.thumbnail.ThumbnailService\">\n\n  <implementation\n    class=\"org.nuxeo.ecm.core.api.thumbnail.ThumbnailServiceImpl\" />\n  <documentation>\n  </documentation>\n\n  <service>\n    <provide\n      interface=\"org.nuxeo.ecm.core.api.thumbnail.ThumbnailService\" />\n  </service>\n\n  <extension-point name=\"thumbnailFactory\">\n    <documentation>\n      @author Vladimir Pasquier (vpasquier@nuxeo.com)\n      This extension\n      provides thumbnail factories according to the type, facet and\n      default one.\n      <code>\n        <thumbnailFactory name=\"thumbnailFolderishFactory\"\n          facet=\"Folderish\"\n          factoryClass=\"org.nuxeo.ecm.platform.thumbnail.factories.ThumbnailFolderishFactory\" />\n        <thumbnailFactory name=\"thumbnailDocumentFactory\"\n          factoryClass=\"org.nuxeo.ecm.platform.thumbnail.factories.ThumbnailDocumentFactory\" />\n      </code>\n\n    </documentation>\n\n    <object\n      class=\"org.nuxeo.ecm.core.api.thumbnail.ThumbnailFactoryDescriptor\" />\n\n  </extension-point>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/thumbnail-service.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentation": "\n      Property that defines the max length of the document name,\n      which is mainly used to build the document path.\n    \n",
              "documentationHtml": "<p>\nProperty that defines the max length of the document name,\nwhich is mainly used to build the document path.\n</p><p></p>",
              "extensionPoint": "org.nuxeo.runtime.ConfigurationService--configuration",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.api.properties/Contributions/org.nuxeo.ecm.core.api.properties--configuration",
              "id": "org.nuxeo.ecm.core.api.properties--configuration",
              "registrationOrder": 14,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.ConfigurationService",
                "name": "org.nuxeo.runtime.ConfigurationService",
                "type": "service"
              },
              "version": "10.10-HF32",
              "xml": "<extension point=\"configuration\" target=\"org.nuxeo.runtime.ConfigurationService\">\n    <documentation>\n      Property that defines the max length of the document name,\n      which is mainly used to build the document path.\n    </documentation>\n    <property name=\"nuxeo.path.segment.maxsize\">24</property>\n\n    <documentation>\n      Property that defines if a transient username should be unique no matter what base username is provided,\n      or if a transient username should be always the same for a given base username.\n\n      @since 10.3\n    </documentation>\n    <property name=\"nuxeo.transient.username.unique\">false</property>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.api.properties",
          "name": "org.nuxeo.ecm.core.api.properties",
          "requirements": [],
          "resolutionOrder": 122,
          "services": [],
          "startOrder": 113,
          "version": "10.10-HF32",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n\n<component name=\"org.nuxeo.ecm.core.api.properties\">\n\n  <extension target=\"org.nuxeo.runtime.ConfigurationService\" point=\"configuration\">\n    <documentation>\n      Property that defines the max length of the document name,\n      which is mainly used to build the document path.\n    </documentation>\n    <property name=\"nuxeo.path.segment.maxsize\">24</property>\n\n    <documentation>\n      Property that defines if a transient username should be unique no matter what base username is provided,\n      or if a transient username should be always the same for a given base username.\n\n      @since 10.3\n    </documentation>\n    <property name=\"nuxeo.transient.username.unique\">false</property>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/core-api-properties.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentation": "\n            Enable Legacy behavior (Nuxeo 6.x) on ACL order of execution. On Nuxeo 6.x and below, the ACL execution order\n            used to be Inherited -&gt; Local -&gt; LocalGroup (custom), on &gt;7.x it's Inherited -&gt; LocalGroup (custom) -&gt; Local.\n            This flag enables Legacy ACL mode on newer Nuxeo versions 7.x and above.\n        \n",
              "documentationHtml": "<p>\nEnable Legacy behavior (Nuxeo 6.x) on ACL order of execution. On Nuxeo 6.x and below, the ACL execution order\nused to be Inherited -&gt; Local -&gt; LocalGroup (custom), on &gt;7.x it&#39;s Inherited -&gt; LocalGroup (custom) -&gt; Local.\nThis flag enables Legacy ACL mode on newer Nuxeo versions 7.x and above.\n</p><p></p>",
              "extensionPoint": "org.nuxeo.runtime.ConfigurationService--configuration",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.security.acl.properties/Contributions/org.nuxeo.ecm.core.security.acl.properties--configuration",
              "id": "org.nuxeo.ecm.core.security.acl.properties--configuration",
              "registrationOrder": 15,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.ConfigurationService",
                "name": "org.nuxeo.runtime.ConfigurationService",
                "type": "service"
              },
              "version": "10.10-HF32",
              "xml": "<extension point=\"configuration\" target=\"org.nuxeo.runtime.ConfigurationService\">\n        <documentation>\n            Enable Legacy behavior (Nuxeo 6.x) on ACL order of execution. On Nuxeo 6.x and below, the ACL execution order\n            used to be Inherited -&gt; Local -&gt; LocalGroup (custom), on &gt;7.x it's Inherited -&gt; LocalGroup (custom) -&gt; Local.\n            This flag enables Legacy ACL mode on newer Nuxeo versions 7.x and above.\n        </documentation>\n        <property name=\"nuxeo.security.acl.legacyBehavior\">false</property>\n    </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api/org.nuxeo.ecm.core.security.acl.properties",
          "name": "org.nuxeo.ecm.core.security.acl.properties",
          "requirements": [],
          "resolutionOrder": 123,
          "services": [],
          "startOrder": 151,
          "version": "10.10-HF32",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.security.acl.properties\">\n    <extension target=\"org.nuxeo.runtime.ConfigurationService\" point=\"configuration\">\n        <documentation>\n            Enable Legacy behavior (Nuxeo 6.x) on ACL order of execution. On Nuxeo 6.x and below, the ACL execution order\n            used to be Inherited -> Local -> LocalGroup (custom), on >7.x it's Inherited -> LocalGroup (custom) -> Local.\n            This flag enables Legacy ACL mode on newer Nuxeo versions 7.x and above.\n        </documentation>\n        <property name=\"nuxeo.security.acl.legacyBehavior\">false</property>\n    </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/legacy-acp-behavior.xml",
          "xmlPureComponent": true
        }
      ],
      "fileName": "nuxeo-core-api-10.10-HF32.jar",
      "groupId": "org.nuxeo.ecm.core",
      "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.api",
      "id": "org.nuxeo.ecm.core.api",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: 1.6.0_20 (Sun Microsystems Inc.)\r\nBuilt-By: jenkins\r\nBuild-Jdk: 1.8.0_222\r\nBundle-ManifestVersion: 2\r\nBundle-Version: 5.4.2.qualifier\r\nExport-Package: org.nuxeo.ecm.core;api=split;mandatory:=api,org.nuxeo.\r\n ecm.core.api;api=split;mandatory:=api,org.nuxeo.ecm.core.api.adapter,\r\n org.nuxeo.ecm.core.api.blobholder,org.nuxeo.ecm.core.api.event,org.nu\r\n xeo.ecm.core.api.event.impl,org.nuxeo.ecm.core.api.externalblob,org.n\r\n uxeo.ecm.core.api.facet,org.nuxeo.ecm.core.api.impl,org.nuxeo.ecm.cor\r\n e.api.impl.blob,org.nuxeo.ecm.core.api.impl.converter,org.nuxeo.ecm.c\r\n ore.api.local,org.nuxeo.ecm.core.api.model,org.nuxeo.ecm.core.api.mod\r\n el.impl,org.nuxeo.ecm.core.api.model.impl.osm,org.nuxeo.ecm.core.api.\r\n model.impl.osm.util,org.nuxeo.ecm.core.api.model.impl.primitives,org.\r\n nuxeo.ecm.core.api.operation,org.nuxeo.ecm.core.api.pathsegment,org.n\r\n uxeo.ecm.core.api.repository,org.nuxeo.ecm.core.api.repository.cache,\r\n org.nuxeo.ecm.core.api.security,org.nuxeo.ecm.core.api.security.impl,\r\n org.nuxeo.ecm.core.api.tree,org.nuxeo.ecm.core.url,org.nuxeo.ecm.core\r\n .url.nxdoc,org.nuxeo.ecm.core.url.nxobj,org.nuxeo.ecm.core.utils\r\nBundle-ActivationPolicy: lazy\r\nBundle-ClassPath: .\r\nBundle-Name: org.nuxeo.ecm.core.api\r\nBundle-RequiredExecutionEnvironment: JavaSE-1.6\r\nNuxeo-Component: OSGI-INF/DocumentAdapterService.xml, OSGI-INF/Reposit\r\n oryManager.xml, OSGI-INF/DocumentValidationService.xml, OSGI-INF/Docu\r\n mentValidationService-activation.xml, OSGI-INF/blobmanager-service.xm\r\n l, OSGI-INF/blob-holder-service-framework.xml, OSGI-INF/blob-holder-a\r\n dapters-contrib.xml, OSGI-INF/pathsegment-service.xml, OSGI-INF/local\r\n -configuration-service.xml, OSGI-INF/propertiesmapping-service.xml, O\r\n SGI-INF/thumbnail-adapter-contrib.xml, OSGI-INF/thumbnail-service.xml\r\n , OSGI-INF/core-api-properties.xml, OSGI-INF/legacy-acp-behavior.xml\r\nImport-Package: javax.security.auth,javax.security.auth.callback,javax\r\n .security.auth.login,javax.security.auth.spi,org.apache.commons.colle\r\n ctions.bidimap,org.apache.commons.collections.map,org.apache.commons.\r\n logging,org.nuxeo.common,org.nuxeo.common.collections,org.nuxeo.commo\r\n n.utils,org.nuxeo.common.xmap.annotation,org.nuxeo.ecm.core.schema,or\r\n g.nuxeo.ecm.core.schema.types,org.nuxeo.ecm.core.schema.types.primiti\r\n ves,org.nuxeo.runtime,org.nuxeo.runtime.api,org.nuxeo.runtime.api.log\r\n in,org.nuxeo.runtime.model,org.nuxeo.runtime.services.streaming\r\nBundle-SymbolicName: org.nuxeo.ecm.core.api;singleton:=true\r\nEclipse-RegisterBuddy: org.nuxeo.runtime\r\nEclipse-ExtensibleAPI: true\r\n\r\n",
      "maxResolutionOrder": 123,
      "minResolutionOrder": 110,
      "packages": [
        "nuxeo-10.10-HF01",
        "nuxeo-10.10-HF04",
        "nuxeo-10.10-HF05",
        "nuxeo-10.10-HF08",
        "nuxeo-10.10-HF11",
        "nuxeo-10.10-HF15",
        "nuxeo-10.10-HF17",
        "nuxeo-10.10-HF18",
        "nuxeo-10.10-HF19",
        "nuxeo-10.10-HF21",
        "nuxeo-10.10-HF22",
        "nuxeo-10.10-HF23",
        "nuxeo-10.10-HF25",
        "nuxeo-10.10-HF26",
        "nuxeo-10.10-HF27",
        "nuxeo-10.10-HF29",
        "nuxeo-10.10-HF31",
        "nuxeo-10.10-HF32"
      ],
      "requirements": [],
      "version": "10.10-HF32"
    },
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-core-storage-dbs",
      "artifactVersion": "10.10-HF33",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.ecm.core.storage",
          "org.nuxeo.ecm.core.storage.dbs",
          "org.nuxeo.ecm.core.storage.mem",
          "org.nuxeo.ecm.core.storage.mongodb",
          "org.nuxeo.ecm.core.storage.sql",
          "org.nuxeo.ecm.core.storage.sql.management"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.storage",
        "id": "grp:org.nuxeo.ecm.core.storage",
        "name": "org.nuxeo.ecm.core.storage",
        "parentIds": [
          "grp:org.nuxeo.ecm.core"
        ],
        "readmes": [],
        "version": "10.10"
      },
      "bundleId": "org.nuxeo.ecm.core.storage.dbs",
      "components": [
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.core.storage.dbs.DBSRepositoryService",
          "documentation": "\n    Manages DBS repositories.\n  \n",
          "documentationHtml": "<p>\nManages DBS repositories.\n</p><p></p>",
          "extensionPoints": [],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.storage/org.nuxeo.ecm.core.storage.dbs/org.nuxeo.ecm.core.storage.dbs.DBSRepositoryService",
          "name": "org.nuxeo.ecm.core.storage.dbs.DBSRepositoryService",
          "requirements": [
            "org.nuxeo.ecm.core.repository.RepositoryServiceComponent"
          ],
          "resolutionOrder": 804,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.storage.dbs.DBSRepositoryService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.storage/org.nuxeo.ecm.core.storage.dbs/org.nuxeo.ecm.core.storage.dbs.DBSRepositoryService/Services/org.nuxeo.ecm.core.storage.dbs.DBSRepositoryService",
              "id": "org.nuxeo.ecm.core.storage.dbs.DBSRepositoryService",
              "overriden": false,
              "version": "10.10-HF33"
            }
          ],
          "startOrder": 862,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.storage.dbs.DBSRepositoryService\" version=\"1.0.0\">\n\n  <require>org.nuxeo.ecm.core.repository.RepositoryServiceComponent</require>\n\n  <documentation>\n    Manages DBS repositories.\n  </documentation>\n\n  <implementation class=\"org.nuxeo.ecm.core.storage.dbs.DBSRepositoryService\" />\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.core.storage.dbs.DBSRepositoryService\" />\n  </service>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/dbs-repository-service.xml",
          "xmlPureComponent": false
        }
      ],
      "fileName": "nuxeo-core-storage-dbs-10.10-HF33.jar",
      "groupId": "org.nuxeo.ecm.core",
      "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.storage/org.nuxeo.ecm.core.storage.dbs",
      "id": "org.nuxeo.ecm.core.storage.dbs",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: Apache Maven\r\nBuilt-By: jenkins\r\nBuild-Jdk: 1.8.0_265\r\nBundle-ManifestVersion: 2\r\nBundle-Version: 10.10-HF33-t20201001-010535\r\nBundle-SymbolicName: org.nuxeo.ecm.core.storage.dbs\r\nNuxeo-Component: OSGI-INF/dbs-repository-service.xml\r\n\r\n",
      "maxResolutionOrder": 804,
      "minResolutionOrder": 804,
      "packages": [
        "nuxeo-10.10-HF05",
        "nuxeo-10.10-HF17",
        "nuxeo-10.10-HF21",
        "nuxeo-10.10-HF23",
        "nuxeo-10.10-HF25",
        "nuxeo-10.10-HF26",
        "nuxeo-10.10-HF31",
        "nuxeo-10.10-HF32",
        "nuxeo-10.10-HF33"
      ],
      "requirements": [],
      "version": "10.10-HF33"
    },
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-platform-filemanager-core-listener",
      "artifactVersion": "10.10-HF31",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.ecm.platform.filemanager.api",
          "org.nuxeo.ecm.platform.filemanager.core",
          "org.nuxeo.ecm.platform.filemanager.core.listener"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.filemanager",
        "id": "grp:org.nuxeo.ecm.platform.filemanager",
        "name": "org.nuxeo.ecm.platform.filemanager",
        "parentIds": [
          "grp:org.nuxeo.ecm.platform"
        ],
        "readmes": [],
        "version": "10.10"
      },
      "bundleId": "org.nuxeo.ecm.platform.filemanager.core.listener",
      "components": [
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentation": "\n      Listen for Core event DOCUMENT_UPDATED and DOCUMENT_CREATED and generates digests\n      for blobs according to filemanager configuration.\n      @author Thierry Delprat (td@nuxeo.com)\n     \n",
              "documentationHtml": "<p>\nListen for Core event DOCUMENT_UPDATED and DOCUMENT_CREATED and generates digests\nfor blobs according to filemanager configuration.\n</p><p></p>",
              "extensionPoint": "org.nuxeo.ecm.core.event.EventServiceComponent--listener",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.filemanager/org.nuxeo.ecm.platform.filemanager.core.listener/filemanager.core.listener.digest/Contributions/filemanager.core.listener.digest--listener",
              "id": "filemanager.core.listener.digest--listener",
              "registrationOrder": 24,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.event.EventServiceComponent",
                "name": "org.nuxeo.ecm.core.event.EventServiceComponent",
                "type": "service"
              },
              "version": "10.10-HF31",
              "xml": "<extension point=\"listener\" target=\"org.nuxeo.ecm.core.event.EventServiceComponent\">\n    <documentation>\n      Listen for Core event DOCUMENT_UPDATED and DOCUMENT_CREATED and generates digests\n      for blobs according to filemanager configuration.\n      @author Thierry Delprat (td@nuxeo.com)\n     </documentation>\n    <listener async=\"false\" class=\"org.nuxeo.ecm.platform.filemanager.core.listener.DigestComputer\" name=\"digestListener\" postCommit=\"false\" priority=\"140\">\n    </listener>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.filemanager/org.nuxeo.ecm.platform.filemanager.core.listener/filemanager.core.listener.digest",
          "name": "filemanager.core.listener.digest",
          "requirements": [],
          "resolutionOrder": 369,
          "services": [],
          "startOrder": 18,
          "version": "10.10-HF31",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"filemanager.core.listener.digest\" version=\"1.0.0\">\n\n  <extension target=\"org.nuxeo.ecm.core.event.EventServiceComponent\" point=\"listener\">\n    <documentation>\n      Listen for Core event DOCUMENT_UPDATED and DOCUMENT_CREATED and generates digests\n      for blobs according to filemanager configuration.\n      @author Thierry Delprat (td@nuxeo.com)\n     </documentation>\n    <listener name=\"digestListener\" async=\"false\" postCommit=\"false\" class=\"org.nuxeo.ecm.platform.filemanager.core.listener.DigestComputer\" priority=\"140\">\n    </listener>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/filemanager-digestcomputer-event-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentation": "\n      Computes the mimetype of dirty blob fields and updates the document icon if necessary.\n     \n",
              "documentationHtml": "<p>\nComputes the mimetype of dirty blob fields and updates the document icon if necessary.\n</p><p></p>",
              "extensionPoint": "org.nuxeo.ecm.core.event.EventServiceComponent--listener",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.filemanager/org.nuxeo.ecm.platform.filemanager.core.listener/filemanager.core.listener.icon/Contributions/filemanager.core.listener.icon--listener",
              "id": "filemanager.core.listener.icon--listener",
              "registrationOrder": 25,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.event.EventServiceComponent",
                "name": "org.nuxeo.ecm.core.event.EventServiceComponent",
                "type": "service"
              },
              "version": "10.10-HF31",
              "xml": "<extension point=\"listener\" target=\"org.nuxeo.ecm.core.event.EventServiceComponent\">\n    <documentation>\n      Computes the mimetype of dirty blob fields and updates the document icon if necessary.\n     </documentation>\n    <listener async=\"false\" class=\"org.nuxeo.ecm.platform.filemanager.core.listener.MimetypeIconUpdater\" name=\"mimetypeIconUpdater\" postCommit=\"false\" priority=\"120\">\n      <event>aboutToCreate</event>\n      <event>beforeDocumentModification</event>\n    </listener>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.filemanager/org.nuxeo.ecm.platform.filemanager.core.listener/filemanager.core.listener.icon",
          "name": "filemanager.core.listener.icon",
          "requirements": [],
          "resolutionOrder": 370,
          "services": [],
          "startOrder": 19,
          "version": "10.10-HF31",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"filemanager.core.listener.icon\" version=\"1.0.0\">\n\n  <extension target=\"org.nuxeo.ecm.core.event.EventServiceComponent\" point=\"listener\">\n    <documentation>\n      Computes the mimetype of dirty blob fields and updates the document icon if necessary.\n     </documentation>\n    <listener name=\"mimetypeIconUpdater\" async=\"false\" postCommit=\"false\" class=\"org.nuxeo.ecm.platform.filemanager.core.listener.MimetypeIconUpdater\" priority=\"120\">\n      <event>aboutToCreate</event>\n      <event>beforeDocumentModification</event>\n    </listener>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/filemanager-iconupdater-event-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentation": "\n      Listen for Core event DOCUMENT_UPDATED and DOCUMENT_CREATED and check for existing duplicated blobs in the db\n     \n",
              "documentationHtml": "<p>\nListen for Core event DOCUMENT_UPDATED and DOCUMENT_CREATED and check for existing duplicated blobs in the db\n</p><p></p>",
              "extensionPoint": "org.nuxeo.ecm.core.event.EventServiceComponent--listener",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.filemanager/org.nuxeo.ecm.platform.filemanager.core.listener/filemanager.core.listener.unicity/Contributions/filemanager.core.listener.unicity--listener",
              "id": "filemanager.core.listener.unicity--listener",
              "registrationOrder": 26,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.event.EventServiceComponent",
                "name": "org.nuxeo.ecm.core.event.EventServiceComponent",
                "type": "service"
              },
              "version": "10.10-HF31",
              "xml": "<extension point=\"listener\" target=\"org.nuxeo.ecm.core.event.EventServiceComponent\">\n    <documentation>\n      Listen for Core event DOCUMENT_UPDATED and DOCUMENT_CREATED and check for existing duplicated blobs in the db\n     </documentation>\n    <listener async=\"true\" class=\"org.nuxeo.ecm.platform.filemanager.core.listener.AsynchronousUnicityCheckListener\" name=\"unicityListener\" postCommit=\"true\" priority=\"140\">\n      <event>documentCreated</event>\n      <event>documentModified</event>\n    </listener>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.filemanager/org.nuxeo.ecm.platform.filemanager.core.listener/filemanager.core.listener.unicity",
          "name": "filemanager.core.listener.unicity",
          "requirements": [],
          "resolutionOrder": 371,
          "services": [],
          "startOrder": 20,
          "version": "10.10-HF31",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"filemanager.core.listener.unicity\" version=\"1.0.0\">\n\n  <extension target=\"org.nuxeo.ecm.core.event.EventServiceComponent\" point=\"listener\">\n    <documentation>\n      Listen for Core event DOCUMENT_UPDATED and DOCUMENT_CREATED and check for existing duplicated blobs in the db\n     </documentation>\n    <listener name=\"unicityListener\" async=\"true\" postCommit=\"true\" class=\"org.nuxeo.ecm.platform.filemanager.core.listener.AsynchronousUnicityCheckListener\" priority=\"140\">\n      <event>documentCreated</event>\n      <event>documentModified</event>\n    </listener>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/filemanager-unicity-event-contrib.xml",
          "xmlPureComponent": true
        }
      ],
      "fileName": "nuxeo-platform-filemanager-core-listener-10.10-HF31.jar",
      "groupId": "org.nuxeo.ecm.platform",
      "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.filemanager/org.nuxeo.ecm.platform.filemanager.core.listener",
      "id": "org.nuxeo.ecm.platform.filemanager.core.listener",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: 1.6.0_20 (Sun Microsystems Inc.)\r\nBuilt-By: jenkins\r\nBuild-Jdk: 1.8.0_222\r\nBundle-ManifestVersion: 2\r\nBundle-Version: 0.0.0.SNAPSHOT\r\nExport-Package: org.nuxeo.ecm.platform.filemanager.core.listener\r\nBundle-ActivationPolicy: lazy\r\nBundle-ClassPath: .\r\nBundle-Localization: plugin\r\nBundle-Name: NXFileManager\r\nBundle-RequiredExecutionEnvironment: JavaSE-1.6\r\nBundle-Vendor: Nuxeo\r\nNuxeo-Component: OSGI-INF/filemanager-digestcomputer-event-contrib.xml\r\n ,OSGI-INF/filemanager-iconupdater-event-contrib.xml,OSGI-INF/filemana\r\n ger-unicity-event-contrib.xml\r\nImport-Package: javax.annotation;version=\"1.0\",org.apache.commons.logg\r\n ing,org.nuxeo.common.utils,org.nuxeo.ecm.core;api=split,org.nuxeo.ecm\r\n .core.api;api=split,org.nuxeo.ecm.core.api.event,org.nuxeo.ecm.core.a\r\n pi.impl.blob,org.nuxeo.ecm.core.api.model,org.nuxeo.ecm.core.api.mode\r\n l.impl.primitives,org.nuxeo.ecm.core.event,org.nuxeo.ecm.core.event.i\r\n mpl,org.nuxeo.ecm.core.schema.types,org.nuxeo.ecm.core.utils,org.nuxe\r\n o.ecm.directory;api=split,org.nuxeo.ecm.platform.filemanager.api,org.\r\n nuxeo.ecm.platform.mimetype.interfaces,org.nuxeo.ecm.platform.types,o\r\n rg.nuxeo.osgi,org.nuxeo.runtime,org.nuxeo.runtime.api\r\nBundle-SymbolicName: org.nuxeo.ecm.platform.filemanager.core.listener\r\n\r\n",
      "maxResolutionOrder": 371,
      "minResolutionOrder": 369,
      "packages": [
        "nuxeo-10.10-HF31"
      ],
      "requirements": [],
      "version": "10.10-HF31"
    },
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-core-bulk",
      "artifactVersion": "10.10-HF33",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.ecm.core",
          "org.nuxeo.ecm.core.api",
          "org.nuxeo.ecm.core.bulk",
          "org.nuxeo.ecm.core.cache",
          "org.nuxeo.ecm.core.event",
          "org.nuxeo.ecm.core.io",
          "org.nuxeo.ecm.core.mimetype",
          "org.nuxeo.ecm.core.mongodb",
          "org.nuxeo.ecm.core.persistence",
          "org.nuxeo.ecm.core.query",
          "org.nuxeo.ecm.core.redis",
          "org.nuxeo.ecm.core.schema",
          "org.nuxeo.ecm.platform.el"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.core",
        "id": "grp:org.nuxeo.ecm.core",
        "name": "org.nuxeo.ecm.core",
        "parentIds": [],
        "readmes": [],
        "version": "10.10"
      },
      "bundleId": "org.nuxeo.ecm.core.bulk",
      "components": [
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.core.scroll.ScrollComponent",
          "documentation": "\n    The scroll service offers an unified API to scroll large result set.\n  \n",
          "documentationHtml": "<p>\nThe scroll service offers an unified API to scroll large result set.\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.scroll.service",
              "descriptors": [
                "org.nuxeo.ecm.core.scroll.ScrollDescriptor"
              ],
              "documentationHtml": "",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk/org.nuxeo.ecm.core.scroll.service/ExtensionPoints/org.nuxeo.ecm.core.scroll.service--scroll",
              "id": "org.nuxeo.ecm.core.scroll.service--scroll",
              "label": "scroll (org.nuxeo.ecm.core.scroll.service)",
              "name": "scroll",
              "version": "10.10-HF33"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk/org.nuxeo.ecm.core.scroll.service",
          "name": "org.nuxeo.ecm.core.scroll.service",
          "requirements": [],
          "resolutionOrder": 124,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.scroll.service",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk/org.nuxeo.ecm.core.scroll.service/Services/org.nuxeo.ecm.core.api.scroll.ScrollService",
              "id": "org.nuxeo.ecm.core.api.scroll.ScrollService",
              "overriden": false,
              "version": "10.10-HF33"
            }
          ],
          "startOrder": 860,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.scroll.service\" version=\"1.0\">\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.core.api.scroll.ScrollService\" />\n  </service>\n\n  <implementation class=\"org.nuxeo.ecm.core.scroll.ScrollComponent\" />\n\n  <documentation>\n    The scroll service offers an unified API to scroll large result set.\n  </documentation>\n\n  <extension-point name=\"scroll\">\n    <object class=\"org.nuxeo.ecm.core.scroll.ScrollDescriptor\" />\n  </extension-point>\n\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/scroll-service.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.scroll.service--scroll",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk/org.nuxeo.ecm.core.scroll.contrib.default/Contributions/org.nuxeo.ecm.core.scroll.contrib.default--scroll",
              "id": "org.nuxeo.ecm.core.scroll.contrib.default--scroll",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.scroll.service",
                "name": "org.nuxeo.ecm.core.scroll.service",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"scroll\" target=\"org.nuxeo.ecm.core.scroll.service\">\n    <scroll class=\"org.nuxeo.ecm.core.scroll.RepositoryScroll\" default=\"true\" name=\"repository\" type=\"document\"/>\n    <scroll class=\"org.nuxeo.ecm.core.scroll.StaticScroll\" name=\"list\" type=\"static\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk/org.nuxeo.ecm.core.scroll.contrib.default",
          "name": "org.nuxeo.ecm.core.scroll.contrib.default",
          "requirements": [
            "org.nuxeo.ecm.core.scroll.service"
          ],
          "resolutionOrder": 125,
          "services": [],
          "startOrder": 150,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.scroll.contrib.default\" version=\"1.0\">\n  <require>org.nuxeo.ecm.core.scroll.service</require>\n  <extension point=\"scroll\" target=\"org.nuxeo.ecm.core.scroll.service\">\n    <scroll type=\"document\" name=\"repository\" default=\"true\" class=\"org.nuxeo.ecm.core.scroll.RepositoryScroll\" />\n    <scroll type=\"static\" name=\"list\" class=\"org.nuxeo.ecm.core.scroll.StaticScroll\" />\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/scroll-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.core.bulk.BulkComponent",
          "documentation": "\n    The Bulk Service allows to execute a Bulk Command. This consists of two steps:\n    <ul>\n    <li>Creation of a document set by scrolling the database</li>\n    <li>Execution of a bulk on document set</li>\n</ul>\n",
          "documentationHtml": "<p>\nThe Bulk Service allows to execute a Bulk Command. This consists of two steps:\n</p><ul><li>Creation of a document set by scrolling the database</li><li>Execution of a bulk on document set</li></ul>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.bulk",
              "descriptors": [
                "org.nuxeo.ecm.core.bulk.BulkActionDescriptor"
              ],
              "documentation": "\n      Allows to define the bulk actions.\n\n      A bulk action is a stream processing composed of one or more computations.\n\n      A bulk action can be made available through http APIs, default is false.\n\n      The bucket size determines the number of document ids per record at the scroller level, default is 100.\n\n      The batch size determines the number of document ids handled per transactions at the computation level, default is 25.\n\n      <code>\n    <extension point=\"actions\" target=\"org.nuxeo.ecm.core.bulk\">\n        <action batchSize=\"25\" bucketSize=\"100\" name=\"internalAction\"/>\n        <action batchSize=\"25\" bucketSize=\"100\" httpEnabled=\"true\" name=\"publicAction\"/>\n    </extension>\n</code>\n",
              "documentationHtml": "<p>\nAllows to define the bulk actions.\n</p><p>\nA bulk action is a stream processing composed of one or more computations.\n</p><p>\nA bulk action can be made available through http APIs, default is false.\n</p><p>\nThe bucket size determines the number of document ids per record at the scroller level, default is 100.\n</p><p>\nThe batch size determines the number of document ids handled per transactions at the computation level, default is 25.\n</p><p>\n</p><pre><code>    &lt;extension point&#61;&#34;actions&#34; target&#61;&#34;org.nuxeo.ecm.core.bulk&#34;&gt;\n        &lt;action batchSize&#61;&#34;25&#34; bucketSize&#61;&#34;100&#34; name&#61;&#34;internalAction&#34;/&gt;\n        &lt;action batchSize&#61;&#34;25&#34; bucketSize&#61;&#34;100&#34; httpEnabled&#61;&#34;true&#34; name&#61;&#34;publicAction&#34;/&gt;\n    &lt;/extension&gt;\n</code></pre><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk/org.nuxeo.ecm.core.bulk/ExtensionPoints/org.nuxeo.ecm.core.bulk--actions",
              "id": "org.nuxeo.ecm.core.bulk--actions",
              "label": "actions (org.nuxeo.ecm.core.bulk)",
              "name": "actions",
              "version": "10.10-HF33"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk/org.nuxeo.ecm.core.bulk",
          "name": "org.nuxeo.ecm.core.bulk",
          "requirements": [],
          "resolutionOrder": 126,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.bulk",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk/org.nuxeo.ecm.core.bulk/Services/org.nuxeo.ecm.core.bulk.BulkService",
              "id": "org.nuxeo.ecm.core.bulk.BulkService",
              "overriden": false,
              "version": "10.10-HF33"
            },
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.bulk",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk/org.nuxeo.ecm.core.bulk/Services/org.nuxeo.ecm.core.bulk.BulkAdminService",
              "id": "org.nuxeo.ecm.core.bulk.BulkAdminService",
              "overriden": false,
              "version": "10.10-HF33"
            }
          ],
          "startOrder": 846,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.bulk\" version=\"1.0.0\">\n\n  <documentation>\n    The Bulk Service allows to execute a Bulk Command. This consists of two steps:\n    <ul>\n      <li>Creation of a document set by scrolling the database</li>\n      <li>Execution of a bulk on document set</li>\n    </ul>\n  </documentation>\n\n  <implementation class=\"org.nuxeo.ecm.core.bulk.BulkComponent\" />\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.core.bulk.BulkService\" />\n    <provide interface=\"org.nuxeo.ecm.core.bulk.BulkAdminService\" />\n  </service>\n\n  <extension-point name=\"actions\">\n    <documentation>\n      Allows to define the bulk actions.\n\n      A bulk action is a stream processing composed of one or more computations.\n\n      A bulk action can be made available through http APIs, default is false.\n\n      The bucket size determines the number of document ids per record at the scroller level, default is 100.\n\n      The batch size determines the number of document ids handled per transactions at the computation level, default is 25.\n\n      <code>\n        <extension target=\"org.nuxeo.ecm.core.bulk\" point=\"actions\">\n          <action name=\"internalAction\" bucketSize=\"100\" batchSize=\"25\" />\n          <action name=\"publicAction\" bucketSize=\"100\" batchSize=\"25\" httpEnabled=\"true\" />\n        </extension>\n      </code>\n    </documentation>\n    <object class=\"org.nuxeo.ecm.core.bulk.BulkActionDescriptor\" />\n  </extension-point>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/bulk-component.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.io.MarshallerRegistry--marshallers",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk/org.nuxeo.ecm.core.bulk.io/Contributions/org.nuxeo.ecm.core.bulk.io--marshallers",
              "id": "org.nuxeo.ecm.core.bulk.io--marshallers",
              "registrationOrder": 1,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.io.MarshallerRegistry",
                "name": "org.nuxeo.ecm.core.io.MarshallerRegistry",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"marshallers\" target=\"org.nuxeo.ecm.core.io.MarshallerRegistry\">\n    <register class=\"org.nuxeo.ecm.core.bulk.io.BulkStatusJsonReader\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.core.bulk.io.BulkStatusJsonWriter\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.core.bulk.io.BulkCommandJsonReader\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.core.bulk.io.BulkCommandJsonWriter\" enable=\"true\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk/org.nuxeo.ecm.core.bulk.io",
          "name": "org.nuxeo.ecm.core.bulk.io",
          "requirements": [],
          "resolutionOrder": 127,
          "services": [],
          "startOrder": 124,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.bulk.io\" version=\"1.0.0\">\n\n  <extension target=\"org.nuxeo.ecm.core.io.MarshallerRegistry\" point=\"marshallers\">\n    <register class=\"org.nuxeo.ecm.core.bulk.io.BulkStatusJsonReader\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.core.bulk.io.BulkStatusJsonWriter\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.core.bulk.io.BulkCommandJsonReader\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.core.bulk.io.BulkCommandJsonWriter\" enable=\"true\" />\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/bulk-io-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.runtime.stream.service--logConfig",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk/org.nuxeo.ecm.core.bulk.config/Contributions/org.nuxeo.ecm.core.bulk.config--logConfig",
              "id": "org.nuxeo.ecm.core.bulk.config--logConfig",
              "registrationOrder": 1,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.stream.service",
                "name": "org.nuxeo.runtime.stream.service",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"logConfig\" target=\"org.nuxeo.runtime.stream.service\">\n    <logConfig name=\"bulk\">\n      <!-- command stream size sets the maximum concurrency for the scroller computation in the Nuxeo cluster -->\n      <log name=\"command\" size=\"2\"/>\n      <!-- status stream size sets the maximum concurrency for the status computation in the Nuxeo cluster -->\n      <log name=\"status\" size=\"1\"/>\n      <!-- done stream size sets the maximum concurrency for the triggers computations -->\n      <log name=\"done\" size=\"1\"/>\n    </logConfig>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.runtime.ConfigurationService--configuration",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk/org.nuxeo.ecm.core.bulk.config/Contributions/org.nuxeo.ecm.core.bulk.config--configuration",
              "id": "org.nuxeo.ecm.core.bulk.config--configuration",
              "registrationOrder": 52,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.ConfigurationService",
                "name": "org.nuxeo.runtime.ConfigurationService",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"configuration\" target=\"org.nuxeo.runtime.ConfigurationService\">\n    <!-- Scroll computation -->\n    <property name=\"nuxeo.core.bulk.scroller.continueOnFailure\">false</property>\n    <property name=\"nuxeo.core.bulk.scroller.concurrency\">2</property>\n    <property name=\"nuxeo.core.bulk.scroller.scroll.size\">200</property>\n    <property name=\"nuxeo.core.bulk.scroller.scroll.keepAliveSeconds\">60</property>\n    <property name=\"nuxeo.core.bulk.scroller.produceImmediate\">false</property>\n    <!-- Status computation -->\n    <property name=\"nuxeo.core.bulk.status.continueOnFailure\">false</property>\n    <property name=\"nuxeo.core.bulk.status.maxRetries\">3</property>\n    <property name=\"nuxeo.core.bulk.status.delayMillis\">1000</property>\n    <property name=\"nuxeo.core.bulk.status.maxDelayMillis\">10000</property>\n    <property name=\"nuxeo.core.bulk.status.concurrency\">1</property>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.bulk--actions",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk/org.nuxeo.ecm.core.bulk.config/Contributions/org.nuxeo.ecm.core.bulk.config--actions",
              "id": "org.nuxeo.ecm.core.bulk.config--actions",
              "registrationOrder": 3,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.bulk",
                "name": "org.nuxeo.ecm.core.bulk",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"actions\" target=\"org.nuxeo.ecm.core.bulk\">\n    <!-- Internal -->\n    <action batchSize=\"25\" bucketSize=\"100\" name=\"trash\" sequentialCommands=\"true\"/>\n    <action batchSize=\"25\" bucketSize=\"100\" name=\"removeProxy\"/>\n    <action batchSize=\"25\" bucketSize=\"100\" name=\"setSystemProperties\"/>\n    <!-- Exposed through REST API -->\n    <action batchSize=\"25\" bucketSize=\"100\" httpEnabled=\"true\" name=\"setProperties\" validationClass=\"org.nuxeo.ecm.core.bulk.validation.SetPropertiesValidation\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.runtime.stream.service--streamProcessor",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk/org.nuxeo.ecm.core.bulk.config/Contributions/org.nuxeo.ecm.core.bulk.config--streamProcessor",
              "id": "org.nuxeo.ecm.core.bulk.config--streamProcessor",
              "registrationOrder": 4,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.stream.service",
                "name": "org.nuxeo.runtime.stream.service",
                "type": "service"
              },
              "version": "10.10-HF33",
              "xml": "<extension point=\"streamProcessor\" target=\"org.nuxeo.runtime.stream.service\">\n    <!-- SetProperty processor -->\n    <streamProcessor class=\"org.nuxeo.ecm.core.bulk.action.SetPropertiesAction\" defaultConcurrency=\"2\" defaultPartitions=\"2\" logConfig=\"bulk\" name=\"setProperties\">\n      <policy continueOnFailure=\"false\" delay=\"500ms\" maxDelay=\"10s\" maxRetries=\"3\" name=\"default\"/>\n    </streamProcessor>\n\n    <!-- SetSystemProperty processor -->\n    <streamProcessor class=\"org.nuxeo.ecm.core.bulk.action.SetSystemPropertiesAction\" defaultConcurrency=\"2\" defaultPartitions=\"2\" logConfig=\"bulk\" name=\"setSystemProperties\">\n      <policy continueOnFailure=\"false\" delay=\"500ms\" maxDelay=\"10s\" maxRetries=\"3\" name=\"default\"/>\n    </streamProcessor>\n\n    <!-- RemoveProxy processor -->\n    <streamProcessor class=\"org.nuxeo.ecm.core.bulk.action.RemoveProxyAction\" defaultConcurrency=\"2\" defaultPartitions=\"2\" logConfig=\"bulk\" name=\"removeProxy\">\n      <policy continueOnFailure=\"false\" delay=\"500ms\" maxDelay=\"10s\" maxRetries=\"3\" name=\"default\"/>\n    </streamProcessor>\n\n    <!-- Trash processor -->\n    <streamProcessor class=\"org.nuxeo.ecm.core.bulk.action.TrashAction\" defaultConcurrency=\"1\" defaultPartitions=\"1\" logConfig=\"bulk\" name=\"trash\">\n      <policy continueOnFailure=\"false\" delay=\"500ms\" maxDelay=\"10s\" maxRetries=\"3\" name=\"default\"/>\n    </streamProcessor>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk/org.nuxeo.ecm.core.bulk.config",
          "name": "org.nuxeo.ecm.core.bulk.config",
          "requirements": [
            "org.nuxeo.runtime.stream.service"
          ],
          "resolutionOrder": 849,
          "services": [],
          "startOrder": 123,
          "version": "10.10-HF33",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.bulk.config\" version=\"1.0.0\">\n\n  <require>org.nuxeo.runtime.stream.service</require>\n\n  <!-- ======================================================================================= -->\n  <!-- Bulk Service configuration -->\n\n  <!-- Initialize bulk service streams before action processors -->\n  <extension point=\"logConfig\" target=\"org.nuxeo.runtime.stream.service\">\n    <logConfig name=\"bulk\">\n      <!-- command stream size sets the maximum concurrency for the scroller computation in the Nuxeo cluster -->\n      <log name=\"command\" size=\"2\" />\n      <!-- status stream size sets the maximum concurrency for the status computation in the Nuxeo cluster -->\n      <log name=\"status\" size=\"1\" />\n      <!-- done stream size sets the maximum concurrency for the triggers computations -->\n      <log name=\"done\" size=\"1\" />\n    </logConfig>\n  </extension>\n\n  <!-- Configure the bulk service processor for this instance, we are using the configuration service -->\n  <!-- because the bulk processor is initialized manually after the Stream service has started the action processors -->\n  <extension target=\"org.nuxeo.runtime.ConfigurationService\" point=\"configuration\">\n    <!-- Scroll computation -->\n    <property name=\"nuxeo.core.bulk.scroller.continueOnFailure\">false</property>\n    <property name=\"nuxeo.core.bulk.scroller.concurrency\">2</property>\n    <property name=\"nuxeo.core.bulk.scroller.scroll.size\">200</property>\n    <property name=\"nuxeo.core.bulk.scroller.scroll.keepAliveSeconds\">60</property>\n    <property name=\"nuxeo.core.bulk.scroller.produceImmediate\">false</property>\n    <!-- Status computation -->\n    <property name=\"nuxeo.core.bulk.status.continueOnFailure\">false</property>\n    <property name=\"nuxeo.core.bulk.status.maxRetries\">3</property>\n    <property name=\"nuxeo.core.bulk.status.delayMillis\">1000</property>\n    <property name=\"nuxeo.core.bulk.status.maxDelayMillis\">10000</property>\n    <property name=\"nuxeo.core.bulk.status.concurrency\">1</property>\n  </extension>\n\n\n  <!-- ======================================================================================= -->\n  <!-- Actions configuration -->\n\n  <extension target=\"org.nuxeo.ecm.core.bulk\" point=\"actions\">\n    <!-- Internal -->\n    <action name=\"trash\" bucketSize=\"100\" batchSize=\"25\" sequentialCommands=\"true\" />\n    <action name=\"removeProxy\" bucketSize=\"100\" batchSize=\"25\" />\n    <action name=\"setSystemProperties\" bucketSize=\"100\" batchSize=\"25\" />\n    <!-- Exposed through REST API -->\n    <action name=\"setProperties\" bucketSize=\"100\" batchSize=\"25\" httpEnabled=\"true\"\n      validationClass=\"org.nuxeo.ecm.core.bulk.validation.SetPropertiesValidation\"/>\n  </extension>\n\n  <!-- Action's processor -->\n  <extension target=\"org.nuxeo.runtime.stream.service\" point=\"streamProcessor\">\n    <!-- SetProperty processor -->\n    <streamProcessor name=\"setProperties\" class=\"org.nuxeo.ecm.core.bulk.action.SetPropertiesAction\" logConfig=\"bulk\"\n      defaultConcurrency=\"2\" defaultPartitions=\"2\">\n      <policy name=\"default\" maxRetries=\"3\" delay=\"500ms\" maxDelay=\"10s\" continueOnFailure=\"false\" />\n    </streamProcessor>\n\n    <!-- SetSystemProperty processor -->\n    <streamProcessor name=\"setSystemProperties\" class=\"org.nuxeo.ecm.core.bulk.action.SetSystemPropertiesAction\"\n      logConfig=\"bulk\" defaultConcurrency=\"2\" defaultPartitions=\"2\">\n      <policy name=\"default\" maxRetries=\"3\" delay=\"500ms\" maxDelay=\"10s\" continueOnFailure=\"false\" />\n    </streamProcessor>\n\n    <!-- RemoveProxy processor -->\n    <streamProcessor name=\"removeProxy\" class=\"org.nuxeo.ecm.core.bulk.action.RemoveProxyAction\" logConfig=\"bulk\"\n      defaultConcurrency=\"2\" defaultPartitions=\"2\">\n      <policy name=\"default\" maxRetries=\"3\" delay=\"500ms\" maxDelay=\"10s\" continueOnFailure=\"false\" />\n    </streamProcessor>\n\n    <!-- Trash processor -->\n    <streamProcessor name=\"trash\" class=\"org.nuxeo.ecm.core.bulk.action.TrashAction\" logConfig=\"bulk\"\n      defaultConcurrency=\"1\" defaultPartitions=\"1\">\n      <policy name=\"default\" maxRetries=\"3\" delay=\"500ms\" maxDelay=\"10s\" continueOnFailure=\"false\" />\n    </streamProcessor>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/bulk-config.xml",
          "xmlPureComponent": true
        }
      ],
      "fileName": "nuxeo-core-bulk-10.10-HF33.jar",
      "groupId": "org.nuxeo.ecm.core",
      "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.bulk",
      "id": "org.nuxeo.ecm.core.bulk",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: Apache Maven\r\nBuilt-By: jenkins\r\nBuild-Jdk: 1.8.0_265\r\nBundle-ManifestVersion: 1\r\nBundle-Version: 1.0.0\r\nBundle-Name: Nuxeo Core Bulk\r\nBundle-SymbolicName: org.nuxeo.ecm.core.bulk;singleton:=true\r\nNuxeo-Component: OSGI-INF/scroll-service.xml,OSGI-INF/scroll-contrib.x\r\n ml,OSGI-INF/bulk-component.xml,OSGI-INF/bulk-config.xml,OSGI-INF/bulk\r\n -io-contrib.xml\r\n\r\n",
      "maxResolutionOrder": 849,
      "minResolutionOrder": 124,
      "packages": [
        "nuxeo-10.10-HF05",
        "nuxeo-10.10-HF08",
        "nuxeo-10.10-HF09",
        "nuxeo-10.10-HF10",
        "nuxeo-10.10-HF11",
        "nuxeo-10.10-HF19",
        "nuxeo-10.10-HF21",
        "nuxeo-10.10-HF22",
        "nuxeo-10.10-HF28",
        "nuxeo-10.10-HF31",
        "nuxeo-10.10-HF33"
      ],
      "readme": {
        "blobProviderId": "default",
        "content": "nuxeo-core-bulk\n===============\n\n## About\n\nThis module provides the ability to execute actions asynchronously on a -possibly large- set of documents. This is done by leveraging [Nuxeo Streams](https://github.com/nuxeo/nuxeo/tree/master/nuxeo-runtime/nuxeo-runtime-stream#nuxeo-runtime-stream) that bring scalability and fault tolerance.\n\n## Definitions\n\n\n- __document set__: a list of documents from a repository represented as a list of document identifiers.\n\n- __action__: an operation that can be applied to a document set.\n\n- __command__: a set of parameters building a request to apply an action on a document set.\n\n- __bucket__: a portion of a document set that fits into a stream record.\n\n- __batch__: a smaller (or equals) portion of a bucket where the action is applied within a transaction.\n\n## Requirements\n\nTo work properly the Bulk Service need a true KeyValue storage to store the command its status,\nthere are 2 possibles choices:\n\n- Use `RedisKeyValueStore` this is the case if you have `nuxeo.redis.enabled=true` in your nuxeo.conf.\n- Use `MongoDBKeyValueStore` this is the case if you are using the `mongodb` template.\n\nYou should not rely on the default `MemKeyValueStore` implementation that flushes the data on restart.\n\n\n## Bulk Command\n\nThe bulk command is the input of the framework.\nIt is composed by the unique name of the action to execute, the NXQL query that materializes the document set, the user submitting the command, the repository and some optional parameters that could be needed by the action:\n\n```java\nBulkCommand command = new BulkCommand.Builder(\"myAction\", \"SELECT * from Document\")\n                                        .repository(\"myRepository\")\n                                        .user(\"myUser\")\n                                        .param(\"param1\", \"myParam1\")\n                                        .param(\"param2\", \"myParam2\")\n                                        .build();\nString commandId = Framework.getService(BulkService.class).submit(command);\n```\n\n\n## Execution flow\n\n![baf](bulk-overview.png)\n\n### The BulkService\nThe entry point is the [`BulkService`](./src/main/java/org/nuxeo/ecm/core/bulk/BulkService.java) that takes a bulk command as an input.\nThe service submits this command, meaning it appends the `BulkCommand` to the `command` stream.\n\nThe BulkService can also returns the status of a command which is internally stored into a KeyValueStore.\n\n### The Scroller computation\n\nThe `command` stream is the input of the `Scroller` computation.\n\nThis computation scrolls the database using a cursor to retrieve the document ids matching the NXQL query.\nThe ids are grouped into a bucket that fit into a record.\n\nThe `BulkBucket` record is appended to the action's stream.\n\nThe scroller send command status update to inform that the scroll is in progress or terminated and to set the total number of document in the materialized document set.\n\n### Actions processors\n\nEach action runs its own stream processor (a topology of computations).\n\nThe action processor must respect the following rules:\n\n- action must send a status update containing the number of processed documents since the last update.\n\n- action must handle possible error, for instance the user that send the command might not have write permission on all documents\n\n- the total number of processed documents reported must match at some point the number of documents in the document set.\n\n- action that aggregates bucket records per command must handle interleaved commands.\n  This can be done by maintaining a local state for each command.\n\n- action that aggregates bucket records per command should checkpoint only when there no other interleaved command in progress.\n  This is to prevent checkpoint while some records are not yet processed resulting in possible loss of record.\n\nAn [`AbstractBulkComputation`](./src/main/java/org/nuxeo/ecm/core/bulk/action/computation/AbstractBulkComputation.java) is provided so an action can be implemented easily with a single computation\nSee [`SetPropertiesAction`](./src/main/java/org/nuxeo/ecm/core/bulk/action/SetPropertiesAction.java) for a simple example.\n\nSee The [`CSVExportAction`](./src/main/java/org/nuxeo/ecm/core/bulk/action/CSVExportAction.java) and particularly the [`MakeBlob`](./src/main/java/org/nuxeo/ecm/core/bulk/action/computation/MakeBlob.java) computation for an advanced example.\n\n\n### The Status computation\n\nThis computation reads from the `status` stream and aggregate status update to build the current status of command.\nThe status is saved into a KeyValueStore.\nWhen the number of processed document is equals to the number of document in the set, the state is changed to completed.\nAnd the computation appends the final status to the `done` stream.\n\nThis `done` stream can be used as an input by custom computation to execute other actions once a command is completed.\n\n\n## How to contribute an action\n\nYou need to register a couple action / stream processor :\n\n```xml\n<extension target=\"org.nuxeo.ecm.core.bulk\" point=\"actions\">\n  <action name=\"myAction\" bucketSize=\"100\" batchSize=\"20\"/>\n</extension>\n```\n\n```xml\n<extension target=\"org.nuxeo.runtime.stream.service\" point=\"streamProcessor\">\n  <streamProcessor name=\"myAction\" class=\"org.nuxeo.ecm.core.bulk.action.MyActionProcessor\" logConfig=\"bulk\"\n      defaultConcurrency=\"2\" defaultPartitions=\"4\" />\n</extension>\n```\n\nSee [`SetPropertiesAction`](./src/main/java/org/nuxeo/ecm/core/bulk/action/SetPropertiesAction.java) for a very basic action implementation.\n\nYou can find more info on how to configure a stream processor in the following link:\nhttps://github.com/nuxeo/nuxeo/tree/master/nuxeo-runtime/nuxeo-runtime-stream#stream-processing\n\n\n## Testing a bulk action with REST API\n\nHere is an example on how to launch a bulk command and get status:\n\n```bash\n## Run a bulk action\ncurl -s -X POST 'http://localhost:8080/nuxeo/site/automation/Bulk.RunAction' -u Administrator:Administrator -H 'content-type: application/json+nxrequest' -d '{\n  \"context\": {},\n  \"params\": {\n    \"action\": \"csvExport\",\n    \"query\": \"SELECT * FROM File WHERE ecm:isVersion = 0 AND ecm:isTrashed = 0\",\n    \"parameters\": {}\n  }\n}' | tee /tmp/bulk-command.txt\n# {\"commandId\":\"e8cc059d-6b9d-480b-a6e1-b0edace6d982\"}\n\n## Extract the command id from the output\ncommandId=$(cat /tmp/bulk-command.txt | jq .[] | tr -d '\"')\n\n## Ask for the command status\ncurl -s -X GET \"http://localhost:8080/nuxeo/api/v1/bulk/$commandId\"  -u Administrator:Administrator  -H 'content-type: application/json' | jq .\n# {\n#  \"entity-type\": \"bulkStatus\",\n#  \"commandId\": \"e8cc059d-6b9d-480b-a6e1-b0edace6d982\",\n#  \"state\": \"RUNNING\",\n#  \"processed\": 0,\n#  \"total\": 1844,\n#  \"submitted\": \"2018-10-11T13:10:26.825Z\",\n#  \"scrollStart\": \"2018-10-11T13:10:26.827Z\",\n#  \"scrollEnd\": \"2018-10-11T13:10:26.846Z\",\n#  \"completed\": null\n#}\n\n## Wait for the completion of the command, this is only for testing purpose\n## a normal client should poll the status regularly instead of using this call:\ncurl -X POST 'http://localhost:8080/nuxeo/site/automation/Bulk.WaitForAction' -u Administrator:Administrator -H 'content-type: application/json+nxrequest' -d $'{\n  \"context\": {},\n  \"params\": {\n    \"commandId\": \"'\"$commandId\"'\",\n    \"timeoutSecond\": \"3600\"\n  }\n}'\n# {\"entity-type\":\"boolean\",\"value\":true}\n\n## Get the status again:\ncurl -s -X GET \"http://localhost:8080/nuxeo/api/v1/bulk/$commandId\"  -u Administrator:Administrator  -H 'content-type: application/json' | jq .\n#{\n#  \"entity-type\": \"bulkStatus\",\n#  \"commandId\": \"e8cc059d-6b9d-480b-a6e1-b0edace6d982\",\n#  \"state\": \"COMPLETED\",\n#  \"processed\": 1844,\n#  \"total\": 1844,\n#  \"submitted\": \"2018-10-11T13:10:26.825Z\",\n#  \"scrollStart\": \"2018-10-11T13:10:26.827Z\",\n#  \"scrollEnd\": \"2018-10-11T13:10:26.846Z\",\n#  \"completed\": \"2018-10-11T13:10:28.243Z\"\n#}\n```\n\nAlso a command can be aborted, this is useful for long running command launched by error, \nor to by pass a command that fails systematically which blocks the entire action processor:\n\n```\n## Abort a command\ncurl -s -X PUT \"http://localhost:8080/nuxeo/api/v1/bulk/$commandId/abort\"  -u Administrator:Administrator  -H 'content-type: application/json' | jq .\n\n```\n\n\n\n## Debugging\n\nAll streams used by the bulk service and action can be introspected using\nthe Nuxeo `bin/stream.sh` script.\n\nFor instance to see the latest commands submitted:\n```bash\n## When using Kafka\n./bin/stream.sh tail -k -l bulk-command --codec avro\n## When using Chronicle Queue\n# ./bin/stream.sh tail --chronicle ./nxserver/data/stream/bulk -l command --codec avro\n```\n| offset | watermark | flag | key | length | data |\n| --- | --- | --- | --- | ---: | --- |\n|bulk-command-01:+2|2018-10-11 11:18:34.955:0|[DEFAULT]|setProperties|164|{\"id\": \"b667b677-d40e-471a-8377-eb16dd301b42\", \"action\": \"setProperties\", \"query\": \"Select * from Document\", \"username\": \"Administrator\", \"repository\": \"default\", \"bucketSize\": 100, \"batchSize\": 25, \"params\": \"{\\\"dc:description\\\":\\\"a new new testbulk description\\\"}\"}|\n|bulk-command-00:+2|2018-10-11 15:10:26.826:0|[DEFAULT]|csvExport|151|{\"id\": \"e8cc059d-6b9d-480b-a6e1-b0edace6d982\", \"action\": \"csvExport\", \"query\": \"SELECT * FROM File WHERE ecm:isVersion = 0 AND ecm:isTrashed = 0\", \"username\": \"Administrator\", \"repository\": \"default\", \"bucketSize\": 100, \"batchSize\": 50, \"params\": null}|\n\n\nTo get the latest commands completed:\n```bash\n./bin/stream.sh tail -k -l bulk-done --codec avro\n```\n| offset | watermark | flag | key | length | data |\n| --- | --- | --- | --- | ---: | --- |\n|bulk-done-00:+4|2018-10-11 14:23:29.219:0|[DEFAULT]|580df47d-dd90-4d16-b23c-0e39ae363e06|96|{\"commandId\": \"580df47d-dd90-4d16-b23c-0e39ae363e06\", \"action\": \"csvExport\", \"delta\": false, \"processed\": 3873, \"state\": \"COMPLETED\", \"submitTime\": 1539260607207, \"scrollStartTime\": 1539260607275, \"scrollEndTime\": 1539260607326, \"completedTime\": 1539260609218, \"total\": 3873, \"result\": null}|\n|bulk-done-00:+5|2018-10-11 15:10:28.244:0|[DEFAULT]|e8cc059d-6b9d-480b-a6e1-b0edace6d982|96|{\"commandId\": \"e8cc059d-6b9d-480b-a6e1-b0edace6d982\", \"action\": \"csvExport\", \"delta\": false, \"processed\": 1844, \"state\": \"COMPLETED\", \"submitTime\": 1539263426825, \"scrollStartTime\": 1539263426827, \"scrollEndTime\": 1539263426846, \"completedTime\": 1539263428243, \"total\": 1844, \"result\": null}|\n\n\nOf course you can view the BulkBucket message\n```bash\n./bin/stream.sh tail -k -l bulk-csvExport --codec avro\n```\n| offset | watermark | flag | key | length | data |\n| --- | --- | --- | --- | ---: | --- |\n|bulk-csvExport-01:+48|2018-10-11 15:10:26.842:0|[DEFAULT]|e8cc059d-6b9d-480b-a6e1-b0edace6d982:18|3750|{\"commandId\": \"e8cc059d-6b9d-480b-a6e1-b0edace6d982\", \"ids\": [\"763135b8-ca49-4eea-9a52-1ceaa227e60a\", ...]}|\n\nAnd check for any lag on any computation, for more information on `stream.sh`:\n```bash\n./bin/stream.sh help\n```\n\n### Following Project QA Status\n\n[![Build Status](https://qa.nuxeo.org/jenkins/buildStatus/icon?job=master/nuxeo-master)](https://qa.nuxeo.org/jenkins/job/master/job/nuxeo-master/)\n\n## About Nuxeo\nNuxeo dramatically improves how content-based applications are built, managed and deployed, making customers more agile, innovative and successful. Nuxeo provides a next generation, enterprise ready platform for building traditional and cutting-edge content oriented applications. Combining a powerful application development environment with SaaS-based tools and a modular architecture, the Nuxeo Platform and Products provide clear business value to some of the most recognizable brands including Verizon, Electronic Arts, Sharp, FICO, the U.S. Navy, and Boeing. Nuxeo is headquartered in New York and Paris. More information is available at www.nuxeo.com.\n",
        "digest": "bb9cee7049052d2b4efbb91de84949a9",
        "encoding": "UTF-8",
        "length": 11670,
        "mimeType": "text/plain",
        "name": "README.md"
      },
      "requirements": [],
      "version": "10.10-HF33"
    },
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-core-storage-sql",
      "artifactVersion": "10.10-HF32",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.ecm.core.storage",
          "org.nuxeo.ecm.core.storage.dbs",
          "org.nuxeo.ecm.core.storage.mem",
          "org.nuxeo.ecm.core.storage.mongodb",
          "org.nuxeo.ecm.core.storage.sql",
          "org.nuxeo.ecm.core.storage.sql.management"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.storage",
        "id": "grp:org.nuxeo.ecm.core.storage",
        "name": "org.nuxeo.ecm.core.storage",
        "parentIds": [
          "grp:org.nuxeo.ecm.core"
        ],
        "readmes": [],
        "version": "10.10"
      },
      "bundleId": "org.nuxeo.ecm.core.storage.sql",
      "components": [
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.core.storage.sql.jdbc.QueryMakerServiceImpl",
          "documentationHtml": "",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.storage.sql.jdbc.QueryMakerService",
              "descriptors": [
                "org.nuxeo.ecm.core.storage.sql.jdbc.QueryMakerDescriptor"
              ],
              "documentationHtml": "",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.storage/org.nuxeo.ecm.core.storage.sql/org.nuxeo.ecm.core.storage.sql.jdbc.QueryMakerService/ExtensionPoints/org.nuxeo.ecm.core.storage.sql.jdbc.QueryMakerService--queryMaker",
              "id": "org.nuxeo.ecm.core.storage.sql.jdbc.QueryMakerService--queryMaker",
              "label": "queryMaker (org.nuxeo.ecm.core.storage.sql.jdbc.QueryMakerService)",
              "name": "queryMaker",
              "version": "10.10-HF32"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.storage/org.nuxeo.ecm.core.storage.sql/org.nuxeo.ecm.core.storage.sql.jdbc.QueryMakerService",
          "name": "org.nuxeo.ecm.core.storage.sql.jdbc.QueryMakerService",
          "requirements": [],
          "resolutionOrder": 155,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.storage.sql.jdbc.QueryMakerService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.storage/org.nuxeo.ecm.core.storage.sql/org.nuxeo.ecm.core.storage.sql.jdbc.QueryMakerService/Services/org.nuxeo.ecm.core.storage.sql.jdbc.QueryMakerService",
              "id": "org.nuxeo.ecm.core.storage.sql.jdbc.QueryMakerService",
              "overriden": false,
              "version": "10.10-HF32"
            }
          ],
          "startOrder": 867,
          "version": "10.10-HF32",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.storage.sql.jdbc.QueryMakerService\"\n  version=\"1.0.0\">\n\n  <implementation\n    class=\"org.nuxeo.ecm.core.storage.sql.jdbc.QueryMakerServiceImpl\" />\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.core.storage.sql.jdbc.QueryMakerService\" />\n  </service>\n\n  <extension-point name=\"queryMaker\">\n    <object class=\"org.nuxeo.ecm.core.storage.sql.jdbc.QueryMakerDescriptor\" />\n  </extension-point>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/querymaker-service.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.storage.sql.jdbc.QueryMakerService--queryMaker",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.storage/org.nuxeo.ecm.core.storage.sql/org.nuxeo.ecm.core.storage.sql.jdbc.querymaker.contrib/Contributions/org.nuxeo.ecm.core.storage.sql.jdbc.querymaker.contrib--queryMaker",
              "id": "org.nuxeo.ecm.core.storage.sql.jdbc.querymaker.contrib--queryMaker",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.storage.sql.jdbc.QueryMakerService",
                "name": "org.nuxeo.ecm.core.storage.sql.jdbc.QueryMakerService",
                "type": "service"
              },
              "version": "10.10-HF32",
              "xml": "<extension point=\"queryMaker\" target=\"org.nuxeo.ecm.core.storage.sql.jdbc.QueryMakerService\">\n    <queryMaker name=\"NXQL\">org.nuxeo.ecm.core.storage.sql.jdbc.NXQLQueryMaker\n    </queryMaker>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.storage/org.nuxeo.ecm.core.storage.sql/org.nuxeo.ecm.core.storage.sql.jdbc.querymaker.contrib",
          "name": "org.nuxeo.ecm.core.storage.sql.jdbc.querymaker.contrib",
          "requirements": [],
          "resolutionOrder": 156,
          "services": [],
          "startOrder": 155,
          "version": "10.10-HF32",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.storage.sql.jdbc.querymaker.contrib\"\n  version=\"1.0.0\">\n\n  <extension target=\"org.nuxeo.ecm.core.storage.sql.jdbc.QueryMakerService\"\n    point=\"queryMaker\">\n    <queryMaker name=\"NXQL\">org.nuxeo.ecm.core.storage.sql.jdbc.NXQLQueryMaker\n    </queryMaker>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/querymaker-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.scheduler.SchedulerService--schedule",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.storage/org.nuxeo.ecm.core.storage.sql/org.nuxeo.ecm.core.storage.sql.softdelete/Contributions/org.nuxeo.ecm.core.storage.sql.softdelete--schedule",
              "id": "org.nuxeo.ecm.core.storage.sql.softdelete--schedule",
              "registrationOrder": 2,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.scheduler.SchedulerService",
                "name": "org.nuxeo.ecm.core.scheduler.SchedulerService",
                "type": "service"
              },
              "version": "10.10-HF32",
              "xml": "<extension point=\"schedule\" target=\"org.nuxeo.ecm.core.scheduler.SchedulerService\">\n    <schedule id=\"softDeleteCleanup\">\n      <event>softDeleteCleanup</event>\n      <!-- cleanup every 15 minutes -->\n      <cronExpression>0 0/15 * * * ?</cronExpression>\n    </schedule>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.event.EventServiceComponent--listener",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.storage/org.nuxeo.ecm.core.storage.sql/org.nuxeo.ecm.core.storage.sql.softdelete/Contributions/org.nuxeo.ecm.core.storage.sql.softdelete--listener",
              "id": "org.nuxeo.ecm.core.storage.sql.softdelete--listener",
              "registrationOrder": 12,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.event.EventServiceComponent",
                "name": "org.nuxeo.ecm.core.event.EventServiceComponent",
                "type": "service"
              },
              "version": "10.10-HF32",
              "xml": "<extension point=\"listener\" target=\"org.nuxeo.ecm.core.event.EventServiceComponent\">\n    <listener async=\"false\" class=\"org.nuxeo.ecm.core.storage.sql.SoftDeleteCleanupListener\" name=\"softDeleteCleanup\">\n      <event>softDeleteCleanup</event>\n    </listener>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.storage/org.nuxeo.ecm.core.storage.sql/org.nuxeo.ecm.core.storage.sql.softdelete",
          "name": "org.nuxeo.ecm.core.storage.sql.softdelete",
          "requirements": [],
          "resolutionOrder": 157,
          "services": [],
          "startOrder": 157,
          "version": "10.10-HF32",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.storage.sql.softdelete\">\n\n  <extension target=\"org.nuxeo.ecm.core.scheduler.SchedulerService\"\n    point=\"schedule\">\n    <schedule id=\"softDeleteCleanup\">\n      <event>softDeleteCleanup</event>\n      <!-- cleanup every 15 minutes -->\n      <cronExpression>0 0/15 * * * ?</cronExpression>\n    </schedule>\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.core.event.EventServiceComponent\"\n    point=\"listener\">\n    <listener name=\"softDeleteCleanup\" async=\"false\"\n      class=\"org.nuxeo.ecm.core.storage.sql.SoftDeleteCleanupListener\">\n      <event>softDeleteCleanup</event>\n    </listener>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/repo-softdelete-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.core.storage.sql.coremodel.SQLRepositoryService",
          "documentation": "\n    Manages VCS repositories.\n  \n",
          "documentationHtml": "<p>\nManages VCS repositories.\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.storage.sql.RepositoryService",
              "descriptors": [
                "org.nuxeo.ecm.core.storage.sql.RepositoryDescriptor"
              ],
              "documentation": "\n      Extension points to register VCS repositories.\n      See http://doc.nuxeo.com/x/hwQz for documentation.\n    \n",
              "documentationHtml": "<p>\nExtension points to register VCS repositories.\nSee http://doc.nuxeo.com/x/hwQz for documentation.\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.storage/org.nuxeo.ecm.core.storage.sql/org.nuxeo.ecm.core.storage.sql.RepositoryService/ExtensionPoints/org.nuxeo.ecm.core.storage.sql.RepositoryService--repository",
              "id": "org.nuxeo.ecm.core.storage.sql.RepositoryService--repository",
              "label": "repository (org.nuxeo.ecm.core.storage.sql.RepositoryService)",
              "name": "repository",
              "version": "10.10-HF32"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.storage/org.nuxeo.ecm.core.storage.sql/org.nuxeo.ecm.core.storage.sql.RepositoryService",
          "name": "org.nuxeo.ecm.core.storage.sql.RepositoryService",
          "requirements": [
            "org.nuxeo.ecm.core.storage.lock.LockManagerService",
            "org.nuxeo.ecm.core.repository.RepositoryServiceComponent",
            "org.nuxeo.ecm.core.api.repository.RepositoryManager"
          ],
          "resolutionOrder": 813,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.storage.sql.RepositoryService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.storage/org.nuxeo.ecm.core.storage.sql/org.nuxeo.ecm.core.storage.sql.RepositoryService/Services/org.nuxeo.ecm.core.storage.sql.coremodel.SQLRepositoryService",
              "id": "org.nuxeo.ecm.core.storage.sql.coremodel.SQLRepositoryService",
              "overriden": false,
              "version": "10.10-HF32"
            }
          ],
          "startOrder": 866,
          "version": "10.10-HF32",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.storage.sql.RepositoryService\" version=\"1.0.0\">\n\n  <require>org.nuxeo.ecm.core.repository.RepositoryServiceComponent</require>\n  <require>org.nuxeo.ecm.core.api.repository.RepositoryManager</require>\n  <require>org.nuxeo.ecm.core.storage.lock.LockManagerService</require>\n\n  <documentation>\n    Manages VCS repositories.\n  </documentation>\n\n  <implementation\n    class=\"org.nuxeo.ecm.core.storage.sql.coremodel.SQLRepositoryService\" />\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.core.storage.sql.coremodel.SQLRepositoryService\" />\n  </service>\n\n  <extension-point name=\"repository\">\n    <documentation>\n      Extension points to register VCS repositories.\n      See http://doc.nuxeo.com/x/hwQz for documentation.\n    </documentation>\n    <object class=\"org.nuxeo.ecm.core.storage.sql.RepositoryDescriptor\" />\n  </extension-point>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/repository-service.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.core.storage.sql.coremodel.SQLRepositoryCompatService",
          "documentation": "\n    Compatibility component to register old extension point.\n    Use org.nuxeo.ecm.core.storage.sql.RepositoryService instead.\n  \n",
          "documentationHtml": "<p>\nCompatibility component to register old extension point.\nUse org.nuxeo.ecm.core.storage.sql.RepositoryService instead.\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.repository.RepositoryService",
              "descriptors": [
                "org.nuxeo.ecm.core.storage.sql.RepositoryDescriptor"
              ],
              "documentation": "\n      Compatibility extension point to register VCS repositories.\n      Use org.nuxeo.ecm.core.storage.sql.RepositoryService instead.\n    \n",
              "documentationHtml": "<p>\nCompatibility extension point to register VCS repositories.\nUse org.nuxeo.ecm.core.storage.sql.RepositoryService instead.\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.storage/org.nuxeo.ecm.core.storage.sql/org.nuxeo.ecm.core.repository.RepositoryService/ExtensionPoints/org.nuxeo.ecm.core.repository.RepositoryService--repository",
              "id": "org.nuxeo.ecm.core.repository.RepositoryService--repository",
              "label": "repository (org.nuxeo.ecm.core.repository.RepositoryService)",
              "name": "repository",
              "version": "10.10-HF32"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.storage/org.nuxeo.ecm.core.storage.sql/org.nuxeo.ecm.core.repository.RepositoryService",
          "name": "org.nuxeo.ecm.core.repository.RepositoryService",
          "requirements": [
            "org.nuxeo.ecm.core.storage.sql.RepositoryService"
          ],
          "resolutionOrder": 814,
          "services": [],
          "startOrder": 857,
          "version": "10.10-HF32",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.repository.RepositoryService\" version=\"1.0.0\">\n\n  <require>org.nuxeo.ecm.core.storage.sql.RepositoryService</require>\n\n  <documentation>\n    Compatibility component to register old extension point.\n    Use org.nuxeo.ecm.core.storage.sql.RepositoryService instead.\n  </documentation>\n\n  <implementation\n    class=\"org.nuxeo.ecm.core.storage.sql.coremodel.SQLRepositoryCompatService\" />\n\n  <extension-point name=\"repository\">\n    <documentation>\n      Compatibility extension point to register VCS repositories.\n      Use org.nuxeo.ecm.core.storage.sql.RepositoryService instead.\n    </documentation>\n    <object class=\"org.nuxeo.ecm.core.storage.sql.RepositoryDescriptor\" />\n  </extension-point>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/repository-compat-service.xml",
          "xmlPureComponent": false
        }
      ],
      "fileName": "nuxeo-core-storage-sql-10.10-HF32.jar",
      "groupId": "org.nuxeo.ecm.core",
      "hierarchyPath": "/grp:org.nuxeo.ecm.core/grp:org.nuxeo.ecm.core.storage/org.nuxeo.ecm.core.storage.sql",
      "id": "org.nuxeo.ecm.core.storage.sql",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: 1.6.0_20 (Sun Microsystems Inc.)\r\nBuilt-By: jenkins\r\nBuild-Jdk: 1.8.0_222\r\nBundle-ManifestVersion: 2\r\nBundle-Version: 5.4.2.qualifier\r\nExport-Package: org.nuxeo.ecm.core.storage,org.nuxeo.ecm.core.storage.\r\n sql;core=split,org.nuxeo.ecm.core.storage.sql.coremodel,org.nuxeo.ecm\r\n .core.storage.sql.jdbc,org.nuxeo.ecm.core.storage.sql.jdbc.db,org.nux\r\n eo.ecm.core.storage.sql.jdbc.dialect,org.nuxeo.ecm.core.storage.sql.net\r\nBundle-ActivationPolicy: lazy\r\nBundle-ClassPath: .\r\nBundle-Category: core\r\nBundle-Name: org.nuxeo.ecm.core.storage.sql\r\nBundle-RequiredExecutionEnvironment: JavaSE-1.6\r\nEclipse-BuddyPolicy: registered, dependent\r\nEclipse-RegisterBuddy: org.nuxeo.common\r\nNuxeo-Component: OSGI-INF/querymaker-service.xml, OSGI-INF/querymaker-\r\n contrib.xml, OSGI-INF/repo-softdelete-contrib.xml, OSGI-INF/repositor\r\n y-compat-service.xml, OSGI-INF/repository-service.xml\r\nImport-Package: javax.resource,javax.resource.cci,javax.servlet;resolu\r\n tion:=optional,javax.servlet.http;resolution:=optional,javax.sql,java\r\n x.transaction.xa,org.apache.commons.beanutils,org.apache.commons.coll\r\n ections.map,org.apache.commons.httpclient,org.apache.commons.httpclie\r\n nt.auth,org.apache.commons.httpclient.methods,org.apache.commons.http\r\n client.params,org.apache.commons.io,org.apache.commons.logging,org.mo\r\n rtbay.component;resolution:=optional,org.mortbay.jetty;resolution:=op\r\n tional,org.mortbay.jetty.bio;resolution:=optional,org.mortbay.jetty.h\r\n andler;resolution:=optional,org.mortbay.jetty.servlet;resolution:=opt\r\n ional,org.nuxeo.common,org.nuxeo.common.collections,org.nuxeo.common.\r\n utils,org.nuxeo.common.xmap,org.nuxeo.common.xmap.annotation,org.nuxe\r\n o.ecm.core,org.nuxeo.ecm.core.api,org.nuxeo.ecm.core.api.blobholder,o\r\n rg.nuxeo.ecm.core.api.impl,org.nuxeo.ecm.core.api.impl.blob,org.nuxeo\r\n .ecm.core.api.model,org.nuxeo.ecm.core.api.security,org.nuxeo.ecm.cor\r\n e.api.security.impl,org.nuxeo.ecm.core.convert.api,org.nuxeo.ecm.core\r\n .event,org.nuxeo.ecm.core.event.impl,org.nuxeo.ecm.core.lifecycle,org\r\n .nuxeo.ecm.core.model,org.nuxeo.ecm.core.query,org.nuxeo.ecm.core.que\r\n ry.sql,org.nuxeo.ecm.core.query.sql.model,org.nuxeo.ecm.core.reposito\r\n ry,org.nuxeo.ecm.core.schema,org.nuxeo.ecm.core.schema.types,org.nuxe\r\n o.ecm.core.schema.types.primitives,org.nuxeo.ecm.core.security,org.nu\r\n xeo.ecm.core.storage.sql,org.nuxeo.ecm.core.utils,org.nuxeo.ecm.core.\r\n versioning,org.nuxeo.runtime,org.nuxeo.runtime.api,org.nuxeo.runtime.\r\n model,org.nuxeo.runtime.services.event,org.nuxeo.runtime.services.str\r\n eaming,org.osgi.framework\r\nBundle-SymbolicName: org.nuxeo.ecm.core.storage.sql;singleton:=true\r\nBundle-Activator: org.nuxeo.ecm.core.storage.sql.Activator\r\nRequire-Bundle: javax.servlet;bundle-version=\"2.5.0\"\r\n\r\n",
      "maxResolutionOrder": 814,
      "minResolutionOrder": 155,
      "packages": [
        "nuxeo-10.10-HF02",
        "nuxeo-10.10-HF05",
        "nuxeo-10.10-HF06",
        "nuxeo-10.10-HF10",
        "nuxeo-10.10-HF11",
        "nuxeo-10.10-HF17",
        "nuxeo-10.10-HF21",
        "nuxeo-10.10-HF23",
        "nuxeo-10.10-HF25",
        "nuxeo-10.10-HF26",
        "nuxeo-10.10-HF27",
        "nuxeo-10.10-HF31",
        "nuxeo-10.10-HF32"
      ],
      "requirements": [
        "javax.servlet"
      ],
      "version": "10.10-HF32"
    },
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-platform-oauth",
      "artifactVersion": "10.10-HF32",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.directory.mongodb",
          "org.nuxeo.ecm.audit.io",
          "org.nuxeo.ecm.content.showcase",
          "org.nuxeo.ecm.default.config",
          "org.nuxeo.ecm.jwt",
          "org.nuxeo.ecm.permissions",
          "org.nuxeo.ecm.platform",
          "org.nuxeo.ecm.platform.api",
          "org.nuxeo.ecm.platform.collections.core",
          "org.nuxeo.ecm.platform.commandline.executor",
          "org.nuxeo.ecm.platform.convert",
          "org.nuxeo.ecm.platform.csv.export",
          "org.nuxeo.ecm.platform.dublincore",
          "org.nuxeo.ecm.platform.htmlsanitizer",
          "org.nuxeo.ecm.platform.lang",
          "org.nuxeo.ecm.platform.marketplace-nuxeo-showcase-content-resources",
          "org.nuxeo.ecm.platform.oauth",
          "org.nuxeo.ecm.platform.oauth1",
          "org.nuxeo.ecm.platform.pdf",
          "org.nuxeo.ecm.platform.query.api",
          "org.nuxeo.ecm.platform.rendering",
          "org.nuxeo.ecm.platform.thumbnail",
          "org.nuxeo.ecm.webdav",
          "org.nuxeo.importer.stream",
          "org.nuxeo.mail",
          "org.nuxeo.mongodb.audit",
          "org.nuxeo.search.ui",
          "org.nuxeo.usermapper"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.platform",
        "id": "grp:org.nuxeo.ecm.platform",
        "name": "org.nuxeo.ecm.platform",
        "parentIds": [],
        "readmes": [
          {
            "blobProviderId": "default",
            "content": "# Nuxeo Showcase Content Sample\n\nThis addon import a set of showcase content containing office documents, images, videos, ...\n\n## Modules\n\n- nuxeo-showcase-content-importer: Showcase content Importer bundle\n\n## Building all modules\n\n    mvn clean install\n\n## How to Create a New Data Zip File\n\n- Import latest released Version\n- Remove old or deprecated documents; without forgetting to clean the trash\n- Import new documents\n- To lighter the zip export file, cleanup all picture views, transcoded videos, etc. Execute this SQL query using your prefered SQL client:\n```\ndelete from hierarchy where primarytype  = 'view' or primarytype = 'storyboarditem' or primarytype = 'transcodedVideoItem';\n```\n- Cleanup CoreSession cache\n- Make a `Zip Tree Export` from `Workspaces`\n- Upload it on Nexus, GAV: `org.nuxeo.ecm.platform:nuxeo-showcase-content-sample-data:NEXT_VERSION`\n- Update Marketplace `nuxeo/marketplace-showcase-content-sample` project to use the correct data version.\n\n# About Nuxeo\n\nNuxeo dramatically improves how content-based applications are built, managed and deployed, making customers more agile, innovative and successful. Nuxeo provides a next generation, enterprise ready platform for building traditional and cutting-edge content oriented applications. Combining a powerful application development environment with SaaS-based tools and a modular architecture, the Nuxeo Platform and Products provide clear business value to some of the most recognizable brands including Verizon, Electronic Arts, Sharp, FICO, the U.S. Navy, and Boeing. Nuxeo is headquartered in New York and Paris. More information is available at www.nuxeo.com.\n",
            "digest": "6e7853722e0b27ce08299406e5a954d9",
            "encoding": "UTF-8",
            "length": 1652,
            "mimeType": "text/plain",
            "name": "README.md"
          },
          {
            "blobProviderId": "default",
            "content": "# Showcase Content Sample\n\n* Add some sample showcase content in your instance like some pictures, videos, ...\n* Project status: working\n* Nuxeo Support\n\n\n# Building\n\n    mvn clean install\n\n\n## QA\n\n[![Build Status](https://qa.nuxeo.org/jenkins/buildStatus/icon?job=addons_FT_nuxeo-showcase-content-sample-master)](https://qa.nuxeo.org/jenkins/job/addons_FT_nuxeo-showcase-content-sample-master/)\n\n# Licensing\n\n[GNU Lesser General Public License (LGPL) v2.1](http://www.gnu.org/licenses/lgpl-2.1.html)\n\nSample: https://github.com/nuxeo/nuxeo-drive\n\n# About Nuxeo\n\nNuxeo dramatically improves how content-based applications are built, managed and deployed, making customers more agile, innovative and successful. Nuxeo provides a next generation, enterprise ready platform for building traditional and cutting-edge content oriented applications. Combining a powerful application development environment with\nSaaS-based tools and a modular architecture, the Nuxeo Platform and Products provide clear business value to some of the most recognizable brands including Verizon, Electronic Arts, Sharp, FICO, the U.S. Navy, and Boeing. Nuxeo is headquartered in New York and Paris.\nMore information is available at [www.nuxeo.com](http://www.nuxeo.com).\n",
            "digest": "20dfb3c3e0d1a341d988f946031ea974",
            "encoding": "UTF-8",
            "length": 1246,
            "mimeType": "text/plain",
            "name": "README.md"
          },
          {
            "blobProviderId": "default",
            "content": "# Nuxeo Platform Importer\n\n## About Nuxeo Platform Importer\n\nThe file importer comes as a Java library (with nuxeo runtime service) and a sample JAX-RS interface to launch, monitor and abort import jobs.\nThis project is an on-going project, supported by Nuxeo\n\n## Building\n### How to Build Nuxeo Platform Importer\nBuild the Nuxeo Platform Importer with Maven:\n```$ mvn install -Dmaven.test.skip=true```\n\n## Deploying\nNuxeo Platform Importer is available as two package add-ons [from the Nuxeo Marketplace]\nhttps://connect.nuxeo.com/nuxeo/site/marketplace/package/nuxeo-platform-importer\nhttps://connect.nuxeo.com/nuxeo/site/marketplace/package/nuxeo-scan-importer\n\n## Resources\n### Documentation\nThe documentation for Nuxeo Platform Importer is available in our Documentation Center: http://doc.nuxeo.com/x/gYBVAQ\n\n### Following Project QA Status\n[![Build Status](https://qa.nuxeo.org/jenkins/buildStatus/icon?job=addons_nuxeo-platform-importer-master)](https://qa.nuxeo.org/jenkins/job/addons_nuxeo-platform-importer-master/)\n\n### Reporting Issues\nYou can follow the developments in the Nuxeo Platform project of our JIRA bug tracker, which includes a Nuxeo Platform Importer component:\nhttps://jira.nuxeo.com/browse/NXP/component/10621\n\nYou can report issues on: http://answers.nuxeo.com/\n\n## About Nuxeo\nNuxeo dramatically improves how content-based applications are built, managed and deployed, making customers more agile, innovative and successful. Nuxeo provides a next generation, enterprise ready platform for building traditional and cutting-edge content oriented applications. Combining a powerful application development environment with SaaS-based tools and a modular architecture, the Nuxeo Platform and Products provide clear business value to some of the most recognizable brands including Verizon, Electronic Arts, Sharp, FICO, the U.S. Navy, and Boeing. Nuxeo is headquartered in New York and Paris. More information is available at www.nuxeo.com.\n\n\n",
            "digest": "8e4c7775ea4ce138f6bcc51e92b77c77",
            "encoding": "UTF-8",
            "length": 1968,
            "mimeType": "text/plain",
            "name": "README.md"
          }
        ],
        "version": "10.10"
      },
      "bundleId": "org.nuxeo.ecm.platform.oauth",
      "components": [
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService--authenticators",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.oauth/org.nuxeo.ecm.platform.oauth.auth.defaultConfig/Contributions/org.nuxeo.ecm.platform.oauth.auth.defaultConfig--authenticators",
              "id": "org.nuxeo.ecm.platform.oauth.auth.defaultConfig--authenticators",
              "registrationOrder": 4,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService",
                "name": "org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService",
                "type": "service"
              },
              "version": "10.10-HF32",
              "xml": "<extension point=\"authenticators\" target=\"org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService\">\n    <authenticationPlugin class=\"org.nuxeo.ecm.platform.oauth2.NuxeoOAuth2Authenticator\" enabled=\"true\" name=\"OAUTH2_AUTH\">\n      <loginModulePlugin>Trusting_LM</loginModulePlugin>\n    </authenticationPlugin>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService--startURL",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.oauth/org.nuxeo.ecm.platform.oauth.auth.defaultConfig/Contributions/org.nuxeo.ecm.platform.oauth.auth.defaultConfig--startURL",
              "id": "org.nuxeo.ecm.platform.oauth.auth.defaultConfig--startURL",
              "registrationOrder": 2,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService",
                "name": "org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService",
                "type": "service"
              },
              "version": "10.10-HF32",
              "xml": "<extension point=\"startURL\" target=\"org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService\">\n\n    <startURLPattern>\n      <patterns>\n        <pattern>oauth2Grant.jsp</pattern>\n        <pattern>oauth2/authorize</pattern>\n      </patterns>\n    </startURLPattern>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.oauth/org.nuxeo.ecm.platform.oauth.auth.defaultConfig",
          "name": "org.nuxeo.ecm.platform.oauth.auth.defaultConfig",
          "requirements": [],
          "resolutionOrder": 448,
          "services": [],
          "startOrder": 393,
          "version": "10.10-HF32",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.oauth.auth.defaultConfig\">\n\n  <extension target=\"org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService\"\n    point=\"authenticators\">\n    <authenticationPlugin name=\"OAUTH2_AUTH\" enabled=\"true\" class=\"org.nuxeo.ecm.platform.oauth2.NuxeoOAuth2Authenticator\">\n      <loginModulePlugin>Trusting_LM</loginModulePlugin>\n    </authenticationPlugin>\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService\" point=\"startURL\">\n\n    <startURLPattern>\n      <patterns>\n        <pattern>oauth2Grant.jsp</pattern>\n        <pattern>oauth2/authorize</pattern>\n      </patterns>\n    </startURLPattern>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/authentication-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.platform.oauth2.providers.OAuth2ServiceProviderRegistryImpl",
          "documentation": "\n    Component and Service to manage the OAuth2 Service providers that can be accessed from Nuxeo via OAuth2\n\n    @author Nelson Silva (nelson.silva@inevo.pt)\n  \n",
          "documentationHtml": "<p>\nComponent and Service to manage the OAuth2 Service providers that can be accessed from Nuxeo via OAuth2\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.oauth2.providers.OAuth2ServiceProviderRegistry",
              "descriptors": [
                "org.nuxeo.ecm.platform.oauth2.providers.OAuth2ServiceProviderDescriptor"
              ],
              "documentationHtml": "",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.oauth/org.nuxeo.ecm.platform.oauth2.providers.OAuth2ServiceProviderRegistry/ExtensionPoints/org.nuxeo.ecm.platform.oauth2.providers.OAuth2ServiceProviderRegistry--providers",
              "id": "org.nuxeo.ecm.platform.oauth2.providers.OAuth2ServiceProviderRegistry--providers",
              "label": "providers (org.nuxeo.ecm.platform.oauth2.providers.OAuth2ServiceProviderRegistry)",
              "name": "providers",
              "version": "10.10-HF32"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.oauth/org.nuxeo.ecm.platform.oauth2.providers.OAuth2ServiceProviderRegistry",
          "name": "org.nuxeo.ecm.platform.oauth2.providers.OAuth2ServiceProviderRegistry",
          "requirements": [],
          "resolutionOrder": 449,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.platform.oauth2.providers.OAuth2ServiceProviderRegistry",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.oauth/org.nuxeo.ecm.platform.oauth2.providers.OAuth2ServiceProviderRegistry/Services/org.nuxeo.ecm.platform.oauth2.providers.OAuth2ServiceProviderRegistry",
              "id": "org.nuxeo.ecm.platform.oauth2.providers.OAuth2ServiceProviderRegistry",
              "overriden": false,
              "version": "10.10-HF32"
            }
          ],
          "startOrder": 907,
          "version": "10.10-HF32",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.oauth2.providers.OAuth2ServiceProviderRegistry\">\n  <implementation\n          class=\"org.nuxeo.ecm.platform.oauth2.providers.OAuth2ServiceProviderRegistryImpl\" />\n  <documentation>\n    Component and Service to manage the OAuth2 Service providers that can be accessed from Nuxeo via OAuth2\n\n    @author Nelson Silva (nelson.silva@inevo.pt)\n  </documentation>\n\n  <service>\n        <provide interface=\"org.nuxeo.ecm.platform.oauth2.providers.OAuth2ServiceProviderRegistry\" />\n  </service>\n\n  <extension-point name=\"providers\">\n    <object class=\"org.nuxeo.ecm.platform.oauth2.providers.OAuth2ServiceProviderDescriptor\" />\n  </extension-point>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/oauth2serviceprovider-framework.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--schema",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.oauth/org.nuxeo.ecm.platform.oauth.schemaContribs/Contributions/org.nuxeo.ecm.platform.oauth.schemaContribs--schema",
              "id": "org.nuxeo.ecm.platform.oauth.schemaContribs--schema",
              "registrationOrder": 23,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "10.10-HF32",
              "xml": "<extension point=\"schema\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n    <schema name=\"oauth2ServiceProvider\" src=\"schemas/oauth2serviceprovider.xsd\"/>\n    <schema name=\"oauth2Token\" src=\"schemas/oauth2token.xsd\"/>\n    <schema name=\"oauth2Client\" src=\"schemas/oauth2client.xsd\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.oauth/org.nuxeo.ecm.platform.oauth.schemaContribs",
          "name": "org.nuxeo.ecm.platform.oauth.schemaContribs",
          "requirements": [],
          "resolutionOrder": 454,
          "services": [],
          "startOrder": 397,
          "version": "10.10-HF32",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.oauth.schemaContribs\">\n\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\" point=\"schema\">\n    <schema name=\"oauth2ServiceProvider\" src=\"schemas/oauth2serviceprovider.xsd\"/>\n    <schema name=\"oauth2Token\" src=\"schemas/oauth2token.xsd\"/>\n    <schema name=\"oauth2Client\" src=\"schemas/oauth2client.xsd\"/>\n  </extension>\n\n</component>\n\n",
          "xmlFileName": "/OSGI-INF/schema-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.directory.GenericDirectory--directories",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.oauth/org.nuxeo.ecm.platform.oauth.directoryContrib/Contributions/org.nuxeo.ecm.platform.oauth.directoryContrib--directories",
              "id": "org.nuxeo.ecm.platform.oauth.directoryContrib--directories",
              "registrationOrder": 9,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.directory.GenericDirectory",
                "name": "org.nuxeo.ecm.directory.GenericDirectory",
                "type": "service"
              },
              "version": "10.10-HF32",
              "xml": "<extension point=\"directories\" target=\"org.nuxeo.ecm.directory.GenericDirectory\">\n\n    <directory extends=\"template-directory\" name=\"oauth2ServiceProviders\">\n      <schema>oauth2ServiceProvider</schema>\n      <idField>id</idField>\n      <autoincrementIdField>true</autoincrementIdField>\n      <substringMatchType>subfinal</substringMatchType>\n      <types>\n        <type>system</type>\n      </types>\n      <permissions>\n        <permission name=\"Read\">\n          <group>___Nobody___</group>\n        </permission>\n      </permissions>\n    </directory>\n\n    <directory extends=\"template-directory\" name=\"oauth2Tokens\">\n      <schema>oauth2Token</schema>\n      <idField>id</idField>\n      <autoincrementIdField>true</autoincrementIdField>\n      <types>\n        <type>system</type>\n      </types>\n      <permissions>\n        <permission name=\"Read\">\n          <group>__Nobody__</group>\n        </permission>\n      </permissions>\n    </directory>\n\n    <directory extends=\"template-directory\" name=\"oauth2Clients\">\n      <schema>oauth2Client</schema>\n      <idField>id</idField>\n      <autoincrementIdField>true</autoincrementIdField>\n      <dataFile>directories/oauth2clients.csv</dataFile>\n      <types>\n        <type>system</type>\n      </types>\n      <permissions>\n        <permission name=\"Read\">\n          <group>__Nobody__</group>\n        </permission>\n      </permissions>\n    </directory>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.oauth/org.nuxeo.ecm.platform.oauth.directoryContrib",
          "name": "org.nuxeo.ecm.platform.oauth.directoryContrib",
          "requirements": [],
          "resolutionOrder": 455,
          "services": [],
          "startOrder": 394,
          "version": "10.10-HF32",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.oauth.directoryContrib\">\n\n  <extension target=\"org.nuxeo.ecm.directory.GenericDirectory\" point=\"directories\">\n\n    <directory name=\"oauth2ServiceProviders\" extends=\"template-directory\">\n      <schema>oauth2ServiceProvider</schema>\n      <idField>id</idField>\n      <autoincrementIdField>true</autoincrementIdField>\n      <substringMatchType>subfinal</substringMatchType>\n      <types>\n        <type>system</type>\n      </types>\n      <permissions>\n        <permission name=\"Read\">\n          <group>___Nobody___</group>\n        </permission>\n      </permissions>\n    </directory>\n\n    <directory name=\"oauth2Tokens\" extends=\"template-directory\">\n      <schema>oauth2Token</schema>\n      <idField>id</idField>\n      <autoincrementIdField>true</autoincrementIdField>\n      <types>\n        <type>system</type>\n      </types>\n      <permissions>\n        <permission name=\"Read\">\n          <group>__Nobody__</group>\n        </permission>\n      </permissions>\n    </directory>\n\n    <directory name=\"oauth2Clients\" extends=\"template-directory\">\n      <schema>oauth2Client</schema>\n      <idField>id</idField>\n      <autoincrementIdField>true</autoincrementIdField>\n      <dataFile>directories/oauth2clients.csv</dataFile>\n      <types>\n        <type>system</type>\n      </types>\n      <permissions>\n        <permission name=\"Read\">\n          <group>__Nobody__</group>\n        </permission>\n      </permissions>\n    </directory>\n\n  </extension>\n\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/directory-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentation": "\n    OAuth2 registered marshallers set.\n  \n",
          "documentationHtml": "<p>\nOAuth2 registered marshallers set.\n</p><p></p>",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.io.MarshallerRegistry--marshallers",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.oauth/org.nuxeo.ecm.platform.oauth.marshallers/Contributions/org.nuxeo.ecm.platform.oauth.marshallers--marshallers",
              "id": "org.nuxeo.ecm.platform.oauth.marshallers--marshallers",
              "registrationOrder": 14,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.io.MarshallerRegistry",
                "name": "org.nuxeo.ecm.core.io.MarshallerRegistry",
                "type": "service"
              },
              "version": "10.10-HF32",
              "xml": "<extension point=\"marshallers\" target=\"org.nuxeo.ecm.core.io.MarshallerRegistry\">\n    <register class=\"org.nuxeo.ecm.platform.oauth2.providers.NuxeoOAuth2ServiceProviderReader\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.platform.oauth2.providers.NuxeoOAuth2ServiceProviderWriter\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.platform.oauth2.providers.NuxeoOAuth2ServiceProviderListWriter\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.platform.oauth2.tokens.NuxeoOAuth2TokenReader\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.platform.oauth2.tokens.NuxeoOAuth2TokenWriter\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.platform.oauth2.tokens.NuxeoOAuth2TokenListWriter\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.platform.oauth2.clients.OAuth2ClientWriter\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.platform.oauth2.clients.OAuth2ClientListWriter\" enable=\"true\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.oauth/org.nuxeo.ecm.platform.oauth.marshallers",
          "name": "org.nuxeo.ecm.platform.oauth.marshallers",
          "requirements": [],
          "resolutionOrder": 456,
          "services": [],
          "startOrder": 396,
          "version": "10.10-HF32",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.oauth.marshallers\" version=\"1.0.0\">\n  <documentation>\n    OAuth2 registered marshallers set.\n  </documentation>\n  <extension target=\"org.nuxeo.ecm.core.io.MarshallerRegistry\" point=\"marshallers\">\n    <register class=\"org.nuxeo.ecm.platform.oauth2.providers.NuxeoOAuth2ServiceProviderReader\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.platform.oauth2.providers.NuxeoOAuth2ServiceProviderWriter\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.platform.oauth2.providers.NuxeoOAuth2ServiceProviderListWriter\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.platform.oauth2.tokens.NuxeoOAuth2TokenReader\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.platform.oauth2.tokens.NuxeoOAuth2TokenWriter\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.platform.oauth2.tokens.NuxeoOAuth2TokenListWriter\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.platform.oauth2.clients.OAuth2ClientWriter\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.platform.oauth2.clients.OAuth2ClientListWriter\" enable=\"true\" />\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/marshallers-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.platform.oauth2.clients.OAuth2ClientServiceImpl",
          "documentation": "\n    Service to manage the OAuth2 clients\n\n    @author Arnaud Kervern (ak@nuxeo.com)\n  \n",
          "documentationHtml": "<p>\nService to manage the OAuth2 clients\n</p><p></p>",
          "extensionPoints": [],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.oauth/org.nuxeo.ecm.platform.oauth2.clients.OAuth2ClientService",
          "name": "org.nuxeo.ecm.platform.oauth2.clients.OAuth2ClientService",
          "requirements": [
            "org.nuxeo.ecm.directory.DirectoryServiceImpl"
          ],
          "resolutionOrder": 823,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.platform.oauth2.clients.OAuth2ClientService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.oauth/org.nuxeo.ecm.platform.oauth2.clients.OAuth2ClientService/Services/org.nuxeo.ecm.platform.oauth2.clients.OAuth2ClientService",
              "id": "org.nuxeo.ecm.platform.oauth2.clients.OAuth2ClientService",
              "overriden": false,
              "version": "10.10-HF32"
            }
          ],
          "startOrder": 906,
          "version": "10.10-HF32",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.oauth2.clients.OAuth2ClientService\">\n  <!-- This service depends on the directory service (which depends on the cache service) -->\n  <require>org.nuxeo.ecm.directory.DirectoryServiceImpl</require>\n\n  <implementation class=\"org.nuxeo.ecm.platform.oauth2.clients.OAuth2ClientServiceImpl\" />\n\n  <documentation>\n    Service to manage the OAuth2 clients\n\n    @author Arnaud Kervern (ak@nuxeo.com)\n  </documentation>\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.platform.oauth2.clients.OAuth2ClientService\" />\n  </service>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/oauth2clientservice-framework.xml",
          "xmlPureComponent": false
        }
      ],
      "fileName": "nuxeo-platform-oauth-10.10-HF32.jar",
      "groupId": "org.nuxeo.ecm.platform",
      "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.oauth",
      "id": "org.nuxeo.ecm.platform.oauth",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: 1.6.0_20 (Sun Microsystems Inc.)\r\nBuilt-By: jenkins\r\nBuild-Jdk: 1.8.0_222\r\nBundle-ManifestVersion: 2\r\nBundle-Version: 0.0.0.SNAPSHOT\r\nBundle-ActivationPolicy: lazy\r\nBundle-ClassPath: .\r\nBundle-Name: Nuxeo OAuth\r\nBundle-RequiredExecutionEnvironment: JavaSE-1.6\r\nNuxeo-Component: OSGI-INF/authentication-contrib.xml,OSGI-INF/oauth2se\r\n rviceprovider-framework.xml,OSGI-INF/schema-contrib.xml,OSGI-INF/dire\r\n ctory-contrib.xml,OSGI-INF/oauth2clientservice-framework.xml,OSGI-INF\r\n /marshallers-contrib.xml\r\nBundle-SymbolicName: org.nuxeo.ecm.platform.oauth;singleton:=true\r\nNuxeo-WebModule: org.nuxeo.ecm.webengine.app.WebEngineModule;name=oaut\r\n h2;extends=base;headless=true;package=org/nuxeo/ecm/webengine/oauth2\r\n\r\n",
      "maxResolutionOrder": 823,
      "minResolutionOrder": 448,
      "packages": [
        "nuxeo-10.10-HF02",
        "nuxeo-10.10-HF06",
        "nuxeo-10.10-HF31",
        "nuxeo-10.10-HF32"
      ],
      "requirements": [],
      "version": "10.10-HF32"
    }
  ],
  "creationDate": 1664793571025,
  "key": "Nuxeo Platform LTS 2019-10.10",
  "name": "Nuxeo Platform LTS 2019",
  "operations": [],
  "packages": [
    {
      "@type": "NXPackage",
      "bundles": [
        "org.nuxeo.ecm.core.api",
        "org.nuxeo.ecm.core.bulk",
        "org.nuxeo.ecm.core.storage.dbs",
        "org.nuxeo.ecm.core.storage.sql",
        "org.nuxeo.ecm.platform.audit",
        "org.nuxeo.ecm.platform.filemanager.core.listener",
        "org.nuxeo.ecm.platform.oauth",
        "org.nuxeo.web.ui"
      ],
      "conflicts": [],
      "dependencies": [
        "nuxeo-10.10-HF30:1.0.0"
      ],
      "hierarchyPath": "/nuxeo-10.10-HF31-1.0.0",
      "id": "nuxeo-10.10-HF31-1.0.0",
      "name": "nuxeo-10.10-HF31",
      "optionalDependencies": [],
      "packageType": "hotfix",
      "title": "Nuxeo 10.10-HF31",
      "version": "1.0.0"
    }
  ],
  "pluginSnapshots": {},
  "releaseDate": 1547942400000,
  "version": "10.10"
}